2

我有一个像这样的位图图像

在此处输入图像描述 我的要求是创建一个 GUI 来加载图像并更改图像上的对比度和其他内容,以及使用 C++ 或 C# 以银色标记特定区域的算法,如图所示。我是图像处理的新手,并且通过我的搜索我发现我可以使用图像的直方图来找到所需的区域。这些是步骤。

  • 获取直方图
  • 搜索强度差异
  • 搜索换行符

有人可以建议我如何从这里开始。我可以为此使用 Opencv 还是可以使用任何其他有效的方法..?

笔记:

在此处输入图像描述这张图片有很多亮点,blob算法不成功。检索矩形对象的正确坐标的任何其他建议。

谢谢

4

3 回答 3

3

OpenCV 应该可以工作。

  1. 将您的输入图像转换为灰度。
  2. adaptiveThreshold将其转换为黑白
  3. 特征检测具有完整的 OpenCV 特征检测器列表;根据您要检测的确切功能选择一个。

例如,看看Simple Blob Detector其中列出了所需的基本步骤。您的银色矩形当然可以称为“简单斑点”(没有孔或其他硬位)

于 2012-05-08T11:10:11.703 回答
1

如果你所有的照片都是这样,在我看来分割银色区域并找到它的中心并不复杂。基本上,您需要按以下顺序应用这些算法:

  1. 我建议使用 Otsu 自适应阈值算法对图像进行二值化
  2. 应用标记(blob)算法
  3. 如果您有一些噪音问题,您可以在 blob 算法之前使用开放滤波器或中值
  4. 如果你最终只有一个斑点(我猜是最大的区域),请使用矩算法找到它的质心。然后你有你正在寻找的X,Y坐标

这些算法都是经典的图像处理,我想那时不难找到。无论如何,我可能已经用 C# 实现了它们,我可以稍后在这里发布,以防你认为它们解决了你的问题。

于 2012-05-08T09:43:34.287 回答
0

可能是对 Directshow 的研究,Microsoft 的多媒体框架将帮助您完成任务。

于 2012-05-07T03:48:38.693 回答