【问题标题】:How to determine a region of interest and then crop an image using OpenCV c++如何确定感兴趣区域,然后使用 OpenCV c++ 裁剪图像
【发布时间】:2013-04-09 23:46:21
【问题描述】:

我有一个示例图像,如下所示。我想将正方形设为我的感兴趣区域,然后裁剪出该部分(正方形)并用它创建一个新图像。我将使用不同的图像,因此正方形不会在所有图像中始终位于同一位置。所以我需要以某种方式检测正方形的边缘。

我不能发布图片,因为我有 10 个声望

请帮帮我??

非常感谢

【问题讨论】:

标签: c++ visual-studio-2010 opencv


【解决方案1】:
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,您应该有一个感兴趣的动态区域!
猜你喜欢
  • 2013-03-19
  • 2012-03-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-06-03
  • 2012-04-25
  • 1970-01-01
相关资源
最近更新 更多