C++ 如何确定感兴趣的区域,然后使用OpenCV c+裁剪图像+;

C++ 如何确定感兴趣的区域,然后使用OpenCV c+裁剪图像+;,c++,visual-studio-2010,opencv,C++,Visual Studio 2010,Opencv,我有一个样本图像如下。我想让正方形成为我感兴趣的区域,然后裁剪出那个部分(正方形),并用它创建一个新的图像。我将处理不同的图像,这样正方形在所有图像中不会总是在同一位置。所以我需要检测正方形的边缘 我不能发布照片,因为我有10个名声 请帮帮我 多谢各位 cvSetImageROI(currentImage,yourSquare); CvSize size = cvSize(width, height); IplImage * newImage = cvCreateImage(size,8,3);

我有一个样本图像如下。我想让正方形成为我感兴趣的区域,然后裁剪出那个部分(正方形),并用它创建一个新的图像。我将处理不同的图像,这样正方形在所有图像中不会总是在同一位置。所以我需要检测正方形的边缘

我不能发布照片,因为我有10个名声

请帮帮我

多谢各位

cvSetImageROI(currentImage,yourSquare);
CvSize size = cvSize(width, height);
IplImage * newImage = cvCreateImage(size,8,3);
cvResize(currentImage,newImage,CV_INTER_AREA);

首先,您必须使用cvSetImageROI(IplImage*,CvRect)设置您的ROI。之后,您将创建具有所需宽度和高度的新图像。最后,您可以将旧图像复制到新图像。新图像将包含您所需的ROI。

发布图像链接,以便我们了解您的意思。几张类似于链接的图片请帮助我?请看这篇文章,因为很多图像无法设置roi值,它们并不总是在同一个位置,必须计算图像中像素的浓度。如何做到这一点?请帮帮我好吗?谢谢你你想检测什么样的物体?如果它们都共享一个公共属性,则可以使用该属性对其进行筛选。否则,您将很难定义所有这些对象这些就是我在上面的链接中发送的图像类型。改变的是水平数字的位移。检测数字所在的感兴趣区域。我应用了什么样的过滤器?您可以使用上面链接中的示例对图像进行阈值化。在这之后,您应该看看findContours方法。此函数将检测所需的点,并将它们存储在点向量中。最后,您可以使用boundingRect方法,该方法将返回一个矩形(正方形),其中包含findContours中的点。如果你使用cvSetImageROI,你应该有一个动态感兴趣的区域!