<!-- lang: cpp --> //水平投影直方圖
IplImage* HorizontalProject(IplImage *src) { int height=src->height; int width=src->width; int *widthPix=new int[height]; IplImage *dst=NULL; for (int i=0;i<height;i++) { widthPix[i]=0; }code
for (int i=0;i<height;i++) { for (int j=0;j<width;j++) { if (cvGetReal2D(src,i,j)==255) { widthPix[i]+=1; } } } dst=cvCreateImage(cvSize(width/2,height),8,1); for (int i=0;i<height;i++) { cvDrawLine(dst,cvPoint(widthPix[i]*0.5,i),cvPoint(width,i),CV_RGB(0,0,0),1); } delete widthPix; return dst;
}co