intereseted에있는 blob의 윤곽선 내에서만 ROI를 지정하는 빠른 해결책이 있습니까?OpenCV C++/Obj-C : 특정 모양의 안쪽에있는 goodFeaturesToTrack
내 아이디어 지금까지 :
-
boundingRect를 사용
- 하지만 내가 분석하고 싶지 않아 너무 많은 물건이 들어 있습니다. 전체 이미지에 goodFeaturesToTrack 적용
- 는 다음 출력을 통해 루프 내 모양의 윤곽 밖에 사전에
감사 한때를 제거하기 위해 좌표! 여기
가 일부 코드의 ... 이력서는 :: pointPolygonTest()가 옳은 것 같다,하지만 난 그것을 구현하는 방법을 잘 모르겠어요 :편집
은 내가 필요한 것을 발견
// ...
IplImage forground_ipl = result;
IplImage *labelImg = cvCreateImage(forground.size(), IPL_DEPTH_LABEL, 1);
CvBlobs blobs;
bool found = cvb::cvLabel(&forground_ipl, labelImg, blobs);
IplImage *imgOut = cvCreateImage(cvGetSize(&forground_ipl), IPL_DEPTH_8U, 3);
if (found) {
vb::CvBlob *greaterBlob = blobs[cvb::cvGreaterBlob(blobs)];
cvb::cvRenderBlob(labelImg, greaterBlob, &forground_ipl, imgOut);
CvContourPolygon *polygon = cvConvertChainCodesToPolygon(&greaterBlob->contour);
}
"polygon"에는 필요한 윤곽이 포함되어 있습니다. 오른쪽
이- (std::vector<cv::Point2f>)pointsFromGoodFeaturesToTrack:(cv::Mat &)_image
{
std::vector<cv::Point2f> corners;
cv::goodFeaturesToTrack(_image,corners, 100, 0.01, 10);
return corners;
}
그래서 다음에 내가 코너를 통해 루프 필요하고 이력서와 각 지점을 확인 :: pointPolygonTest을() :
goodFeaturesToTrack이 방법을 구현?
당신은 당신의 관심의 영역 상에 마스크를 만들 수 있습니다
원하는 것을 빠르게 보여줄 수 있습니까? – mevatron
@ mevatron 귀하의 도움과 cvBlob을 사용하여 카톤 (다른 스레드)의 윤곽을 얻었습니다. 이제는 내가 좋아하는 상자의 모서리를 얻기 위해 입력 이미지에서 GoodFeaturesToTrack을 실행합니다. 다음 단계는 모서리 만 필터링하는 것입니다. 한 번은 판지 상자 안쪽에 있습니다. 당신이하고 싶은 것을 얻을 수 있기를 바랍니다 ... – dom