Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-cloud-platform/3.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
Opencv 循环中的cvSetImageROI_Opencv_Region_Roi - Fatal编程技术网

Opencv 循环中的cvSetImageROI

Opencv 循环中的cvSetImageROI,opencv,region,roi,Opencv,Region,Roi,我刚刚开始学习OpenCV,我想问一下如何在循环中使用cvSetImageROI。问题是,我想将一幅图像分成9个相等的区域,并检查每个区域是否有直线或曲线。但是,我不知道如何在循环中使用cvSetImageROI,以便它自动转到下一个区域 cvSetImageROI(image, one); 这是用于获取区域的函数。这里,“图像”是区域应该来自的图像,“一”是要实现的特定区域的矩形区域。如果我想检查图像的所有9个区域,如何从一个矩形区域移动到另一个矩形区域 多谢各位 您可以将图像(宽度、高度)

我刚刚开始学习OpenCV,我想问一下如何在循环中使用cvSetImageROI。问题是,我想将一幅图像分成9个相等的区域,并检查每个区域是否有直线或曲线。但是,我不知道如何在循环中使用cvSetImageROI,以便它自动转到下一个区域

cvSetImageROI(image, one);
这是用于获取区域的函数。这里,“图像”是区域应该来自的图像,“一”是要实现的特定区域的矩形区域。如果我想检查图像的所有9个区域,如何从一个矩形区域移动到另一个矩形区域


多谢各位

您可以将图像(宽度、高度)拆分为矩形,其中宽度步长=原始宽度/3,高度步长=原始高度/3

然后使用这样的循环:

for (i = 0; i < 3; i++)
   for (j = 0; j < 3; j++) 
   {
     CvRect rect;
     rect.x = i * width_step;
     rect.y = j * height_step;
     if (i < 2)
        rect.width = width_step;
     else
        rect.width = image.width - rect.x;
     if (j < 2)
        rect.height = height_step;
     else
        rect.height = image.height - rect.y; 
     cvSetImageROI(image, rect);
   }
(i=0;i<3;i++)的

对于(j=0;j<3;j++)
{
CvRect-rect;
矩形x=i*width\u步长;
矩形y=j*高度×步距;
如果(i<2)
rect.width=宽度\步进;
其他的
rect.width=image.width-rect.x;
if(j<2)
rect.height=高度\步距;
其他的
rect.height=image.height-rect.y;
cvSetImageROI(图像,rect);
}
你检查每个区域。
希望这有帮助,代码还没有经过测试。

您可以做的是将图像(宽度、高度)分割成矩形,宽度为原始宽度/3,高度为原始高度/3

然后使用这样的循环:

for (i = 0; i < 3; i++)
   for (j = 0; j < 3; j++) 
   {
     CvRect rect;
     rect.x = i * width_step;
     rect.y = j * height_step;
     if (i < 2)
        rect.width = width_step;
     else
        rect.width = image.width - rect.x;
     if (j < 2)
        rect.height = height_step;
     else
        rect.height = image.height - rect.y; 
     cvSetImageROI(image, rect);
   }
(i=0;i<3;i++)的

对于(j=0;j<3;j++)
{
CvRect-rect;
矩形x=i*width\u步长;
矩形y=j*高度×步距;
如果(i<2)
rect.width=宽度\步进;
其他的
rect.width=image.width-rect.x;
if(j<2)
rect.height=高度\步距;
其他的
rect.height=image.height-rect.y;
cvSetImageROI(图像,rect);
}
你检查每个区域。 希望这有帮助,代码还没有经过测试