利用OpenCV计算图像的垂直和水平积分投影

#include <cv.h>   #include <highgui.h>   #pragma comment( lib, "cv.lib" )   #pragma comment( lib, "cxcore.lib" )   #pragma comment( lib, "highgui.lib" )    int main()   {          IplImage * src=cvLoadImage("lena.jpg",0);   //  cvSmooth(src,src,CV_BLUR,3,3,0,0);        cvThreshold(src,src,50,255,CV_THRESH_BINARY_INV);       IplImage* paintx=cvCreateImage( cvGetSize(src),IPL_DEPTH_8U, 1 );       IplImage* painty=cvCreateImage( cvGetSize(src),IPL_DEPTH_8U, 1 );       cvZero(paintx);       cvZero(painty);       int* v=new int[src->width];       int* h=new int[src->height];       memset(v,0,src->width*4);       memset(h,0,src->height*4);              int x,y;       CvScalar s,t;       for(x=0;x<src->width;x++)       {           for(y=0;y<src->height;y++)           {               s=cvGet2D(src,y,x);                        if(s.val[0]==0)                   v[x]++;                            }              }              for(x=0;x<src->width;x++)       {           for(y=0;y<v[x];y++)           {                      t.val[0]=255;               cvSet2D(paintx,y,x,t);                 }              }              for(y=0;y<src->height;y++)       {           for(x=0;x<src->width;x++)           {               s=cvGet2D(src,y,x);                        if(s.val[0]==0)                   h[y]++;                }          }       for(y=0;y<src->height;y++)       {           for(x=0;x<h[y];x++)           {                          t.val[0]=255;               cvSet2D(painty,y,x,t);                     }              }       cvNamedWindow("二值图像",1);       cvNamedWindow("垂直积分投影",1);       cvNamedWindow("水平积分投影",1);       cvShowImage("二值图像",src);       cvShowImage("垂直积分投影",paintx);       cvShowImage("水平积分投影",painty);       cvWaitKey(0);       cvDestroyAllWindows();       cvReleaseImage(&src);       cvReleaseImage(&paintx);       cvReleaseImage(&painty);       return 0;   }  

下面是代码运行的结果:

利用OpenCV计算图像的垂直和水平积分投影

利用OpenCV计算图像的垂直和水平积分投影

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/b3aef4b7c9f22febde5404a3b82f33af.html