[問題] OpenCV擷取圖案特徵矩形框的座標疑問

看板C_and_CPP (C/C++)作者 (搖滾兔)時間16年前 (2009/12/01 21:09), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/1
各位會使用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
文章代碼(AID): #1B5HMMOZ (C_and_CPP)
文章代碼(AID): #1B5HMMOZ (C_and_CPP)