簡體   English   中英

C ++中圓形區域中的Opencv對象檢測

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM