这是我的代码
import java.awt.image.BufferedImage;
public class HaarFeature {
public static void GetFeature(BufferedImage image){
int width = image.getWidth();
int height = image.getHeight();
//int feature_width=1*scale_width;
//int feature_height=1*scale_height;
int[][] iI = IntegralImage.convIntegralImage(image);
int white=0;
int black=0;
int feature=0;
for(int i=0;i<height;i++){
for(int j=0;j<width;j++){
if(i<(height-1) && j<(width-3)){
if(i==0 && j==0){
black=iI[i][j+3];
white=iI[i+1][j+3]-iI[i][j+3];
feature=black-white;
System.out.print(feature+" ");
}
else if(i==0){
black=iI[i][j+3]-iI[i][j-1];
white=iI[i+1][j+3]+iI[i][j-1]-iI[i][j+3]-iI[i+1][j-1];
feature=black-white;
System.out.print(feature+" ");
}
else if(j==0){
black=iI[i][j+3]-iI[i-1][j+3];
white=iI[i+1][j+3]-iI[i][j+3];
feature=black-white;
System.out.print(feature+" ");
}
else{
black=iI[i][j+3]+iI[i-1][j-1]-iI[i][j-1]-iI[i-1][j+3];
white=iI[i+1][j+3]+iI[i][j-1]-iI[i][j+3]-iI[i+1][j-1];
feature=black-white;
System.out.print(feature+" ");
}
}
}
System.out.println();
}
}
}这段代码只生成一个2px x 4px的矩形特征。据我所知,在haar特征中有很多矩形特征。如何编写代码在haar特性中进行缩放?请帮帮我
发布于 2014-10-21 06:12:10
我可以帮你,但是我是用c++编程的,检查mi代码来生成haar特性:
int sizeX = feature[i][0];
int sizeY = feature[i][1];
// Each position:
for (int x = 0; x <= frameSize-sizeX; x++) {
for (int y = 0; y <= frameSize-sizeY; y++) {
// Each size fitting within the frameSize:
for (int width = sizeX; width <= frameSize-x; width+=sizeX) {
for (int height = sizeY; height <= frameSize-y; height+=sizeY) {
count++;
}
}
}
}该代码给出了Lienhart,R.和Maydt,J.的文章中所示的特征的正确数量,“用于快速目标检测的扩展的类似于Haar的特征集合”,ICIP02,第p页。I: 900-903,2002。
https://stackoverflow.com/questions/24443914
复制相似问题