OpenCV中bwAreaOpen的實現1

double tmparea=0.0;
CvContourScanner scanner=NULL;
CvRect rect;
uchar *pp=NULL,*pp1=NULL;
double minarea = 100000;

dst = cvCloneImage(bw);
scanner=cvStartFindContours(bw,storage,sizeof(CvContour),CV_RETR_CCOMP,CV_CHAIN_APPROX_NONE,cvPoint(0,0));


while (contour=cvFindNextContour(scanner))
{
tmparea=fabs(cvContourArea(contour));
rect=cvBoundingRect(contour,0);


if (tmparea<minarea)
{
pp=(uchar*)(bw->imageData+bw->widthStep*(rect.y+rect.height/2)+rect.x+rect.width/2);
if (pp[0]==0)
{
for (int y=rect.y;y<rect.y+rect.height;y++)
{
for (int x=rect.x;x<rect.x+rect.width;x++)
{
pp1=(uchar*)(dst->imageData+dst->widthStep*y+x);
if(pp1[0]==0)
{
pp1[0]=255;
}
}
}
}  
}
}
cvShowImage( "Hough", dst );
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章