我到目前爲止已經試圖找到一種方法來知道,如果一個點(cvPoint)是在同一個孔比另一個。我的解決方案是從cvFindContours()的應用中獲取CvSeq,並用適當的顏色填充這些空洞以獲得blob矩陣。 當會做,知道,如果一個點屬於同一輪廓比另一點只包含在比較像素值,但我想不出爲什麼它不工作。OpenCV中得到點
不幸的是,這是誰的沒有回答一個問題,我花了很多時間在谷歌和StackOverflow上(或者也許我尋找的關鍵詞非常糟糕)。希望有人有線索;)
IplImage *imgTemp = cvCreateImage(cvGetSize(getMorph()), (getMorph())->depth, 1);
CvMemStorage *mem = cvCreateMemStorage();
cvConvertImage(getMorph(), imgTemp);
CvSeq *contours = NULL;
cvFindContours(imgTemp, mem, &contours, sizeof(CvContour), CV_RETR_CCOMP, CV_CHAIN_APPROX_NONE);
int colIt=255;
for (CvSeq *ptr = contours; ptr != NULL; ptr = ptr->h_next) {
if(ptr->v_next != NULL)
{
CvScalar color = CV_RGB(colIt,colIt,colIt);
cvDrawContours(imgTemp, ptr->v_next, color, color, -1, CV_FILLED, 100);
--colIt;
}
}