Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/127.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++中圆形区域中OpenCV对象的检测_C++_C_Image_Opencv_Image Processing - Fatal编程技术网

C++中圆形区域中OpenCV对象的检测

C++中圆形区域中OpenCV对象的检测,c++,c,image,opencv,image-processing,C++,C,Image,Opencv,Image Processing,我是opencv的新手,我需要在一个圆形区域中检测一个对象。我有一个图像,图像中有一个固定点 以点为圆心,我需要检测直径为d的圆中的物体。因此我认为首先我必须切割圆形部分并检测其中的物体。我如何才能做到这一点 伪代码: void detect_func() { IpImage im= cvLoadImage(my_image); Cut_The_Circular_Area(); Detect_Object(); } 我想这可能会帮助你,即使我不知道,我们不能像普通的矩形一

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

以点为圆心,我需要检测直径为d的圆中的物体。因此我认为首先我必须切割圆形部分并检测其中的物体。我如何才能做到这一点

伪代码:

 void detect_func() {    

 IpImage im= cvLoadImage(my_image);

 Cut_The_Circular_Area();

 Detect_Object();
}

我想这可能会帮助你,即使我不知道,我们不能像普通的矩形一样裁剪圆形ROI,所以我尝试了这个片段,它可能对你有用

你可以使用圆形创建一个遮罩,并将源和遮罩一起复制到新图像。如果你的新手不使用不推荐的C,那就从C++开始,谢谢@harris我会的
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
         }