[問題] OpenCV擷取圖案特徵矩形框的座標疑問
各位會使用OpenCV的大大你們好
我想請教一個關於OpenCV擷取特徵矩形框的問題
就是現在我抓出一張圖(高240寬352)中我要的紅球區域
然後我利用cvRect矩形框框出我要的紅球區域
然後我標出他框框的左上角跟右下角的座標
問題來了
我有框出來了~程式執行結果是用一個框框就框出了整個紅色的球
可是在座標上的執行結果卻是框框左上角(1,1)框框右下角(351,249)
如果在框框的程式那個for迴圈中每次將框框的左上角跟右下角座標執行出來
他會執行兩次
第一次會將正確的紅色框框的座標執行出來
第二次就是所謂的(1,1)跟(351,249)
想請教大大有人可以為我解答一下為什麼嗎
在此附上程式碼:
CvPoint center;
CvPoint leftup;
CvPoint rightdown;
CvScalar check;
cvCvtColor( img1, dst, CV_RGB2GRAY );
cont =cvCreateSeq(CV_SEQ_ELTYPE_POINT,sizeof(CvSeq),sizeof(CvPoint),stor);
cvFindContours(dst,stor,&cont,sizeof(CvContour),CV_RETR_LIST,CV_CHAIN_APPROX_NONE,cvPoint(0,0));
for(; cont;cont=cont->h_next)
{
if(cvBoundingRect(cont).height*cvBoundingRect(cont).width>50)
{
CvRect r =((CvContour*)cont)->rect;
center=cvPoint((r.y+r.height/2),(r.x+r.width/2));
leftup=cvPoint((r.x),(r.y));
rightdown=cvPoint((r.x+r.width),(r.y+r.height));
cvRectangle(Test3,cvPoint(r.x,r.y),cvPoint(r.x+r.width,r.y+r.height),CV_RGB(255,0,0),1,CV_AA,0);
printf("leftup1.x=%d leftup1.y=%d\n",leftup.x,leftup.y);
printf("rightdown1.x=%d rightdown1.y=%d\n",rightdown.x,rightdown.y);
}
}
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.121.130.177
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章