【问题标题】:Opencv object detection in a circular area in C++C ++中圆形区域中的Opencv对象检测
【发布时间】:2014-03-27 10:46:53
【问题描述】:

我是opencv中的新手,我需要检测圆形区域中的物体。我有一个图像,我在图像中有一个固定点。

以该点为圆心,我需要检测直径为d的圆中的物体。所以我认为首先我必须切割圆形部分并检测其中的物体。我该怎么做?

伪代码:

 void detect_func() {    

 IpImage im= cvLoadImage(my_image);

 Cut_The_Circular_Area();

 Detect_Object();
}

【问题讨论】:

  • 您可以使用圆形创建蒙版并将源与蒙版一起复制到新图像。如果您的新手不使用已弃用的 C,请从 C++ 开始
  • 谢谢@harris 我会做的

标签: c++ c image opencv image-processing


【解决方案1】:
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,所以我尝试了这个 sn-p,它可能对你有用

【讨论】:

    猜你喜欢
    • 2023-03-03
    • 1970-01-01
    • 2017-05-24
    • 2016-06-01
    • 2011-07-19
    • 1970-01-01
    • 1970-01-01
    • 2014-10-17
    • 2014-06-15
    相关资源
    最近更新 更多