使用c ++在图像中标记兴趣点

时间:2012-05-07 03:45:45

标签: c# c++ image-processing histogram vision

我有像这样的位图图片

enter image description here 我的要求是创建一个GUI来加载图像,并改变图像和算法上的对比度和其他东西,以标记银色的特定区域,如图中所示使用C ++或C#。我是图像处理的新手,并通过我的搜索我发现我可以使用图像的直方图来找到所需的区域。这些是步骤。

  • 获取直方图
  • 搜索强度差异
  • 在行中搜索中断

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

注:

enter image description here此图像有许多亮点,blob算法不成功。 任何其他建议来检索像对象一样的矩形的正确坐标。

谢谢

3 个答案:

答案 0 :(得分:3)

OpenCV应该可以工作。

  1. 将输入图像转换为灰度。
  2. adaptiveThreshold将其转换为黑白
  3. Feature detection有一整套OpenCV特征检测器;根据您要检测的确切功能选择一个。
  4. E.g。查看Simple Blob Detector,其中列出了所需的基本步骤。你的银色矩形当然有资格称为“简单blob”(无孔或其他硬位)

答案 1 :(得分:1)

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

  1. 我建议使用Otsu自适应阈值算法对图像进行二值化
  2. 应用标签(blob)算法
  3. 如果你有一些噪音问题,你可以在blob算法之前使用开场滤镜或中位数
  4. 如果你最终只得到一个斑点(我估计面积最大),可以使用矩算法找到它的质心。然后你有你正在寻找的X,Y坐标
  5. 这些算法是经典的图像处理,我想它不会很难找到。无论如何,我可能已经用C#实现了它们,我可以在这里发布,以防你认为它们可以解决你的问题。

答案 2 :(得分:0)

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