[英]Opencv object detection in a circular area in C++
我是opencv的新手,需要檢測圓形區域中的物體。我有一個圖像,並且在圖像中有一個固定點。
以該點為圓心,我需要在直徑為d的圓中檢測物體,所以我認為首先必須切割圓形部分並檢測其中的物體,我該怎么做?
偽代碼:
void detect_func() {
IpImage im= cvLoadImage(my_image);
Cut_The_Circular_Area();
Detect_Object();
}
Mat image = imwrite("lena.jpg");
Mat roi = cvCreateMat( image.rows,image.cols, CV_8UC1 );
Mat test = cvCreateMat( image.rows,image.cols, CV_8UC1 );
for( int i=0; i < res.cols; i++ )
for( int j=0; j < res.rows; j++ )
roi.at<uchar>(Point(i,j)) = 0;
circle( roi, point, radius, 255, -1, 8, 0 );
image.copyTo( test,roi );
for( int i=0; i < test.cols; i++ )
for( int j=0; j < test.rows; j++ )
if( test.at<uchar>(Point(i,j)) > 0) {
//Do your processing here
}
我想這可能會對您有幫助,即使我不知道,我們也無法像正常Rect一樣裁剪圓形ROI,所以我嘗試了此代碼段,它可能對您有用
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.