比较2图像的焦点

时间:2014-02-27 18:26:11

标签: c# image-processing computer-vision

我正在尝试开发对象检测算法。我打算比较2个不同焦距的图像。一个正确聚焦在物体上的图像和一个正确聚焦在背景上的图像。

阅读autofocus algorithm。我认为它可以用对比度检测无源自动对焦算法。它适用于传感器上的光强度。

但我不确定图像文件中的光强度值是否与传感器的值相同。 (它不是RAW图像文件.jpeg图像。)jpeg图像中的光强度值是否与传感器上的相同?我可以使用它来检测对比度检测的焦点正确性吗?有没有更好的方法来检测哪个图像区域正确聚焦在图像上?

2 个答案:

答案 0 :(得分:0)

查看图片会很有帮助。我理解你是正确的你尝试使用焦点(或模糊)提示将背景与前景分开。图像中的对比度取决于焦点,但取决于目标的对比度。因此,如果目标是云,你将永远不会获得锋利的边缘或高对比度。最后,使用少量压缩的jpeg图像不应影响算法的关键属性。

我会尝试在一行中获得所有可能焦距的多个图像,然后根据焦距(甚至更好的聚焦距离)构建对比度图。无论对象自身的对比度如何,此图表中的峰值都将为您提供到对象的距离。但请注意,这种视觉提示的准确性随着观看距离而急剧下降。

这是我希望你在一个小窗口中测量绝对值gradient的总和时得到的:

enter image description here

下一步将是将焦点区域与图形中没有特定峰值的纯色区域组合在一起,但同样属于同一个对象。有时获得convex hull聚焦区域可以帮助确定对象的原始边界。

答案 1 :(得分:0)

我试图稍微处理一下图像,但我看到了一些进展。这就是我使用opencv做的事情:

enter image description here

您可以尝试使用原始灰色图像上的matchTemplate()翻译来匹配和减去这些图像;然后使用结果的凸包作为grab cut的初始化掩码并插入彩色图像来组装碎片。如果您不熟悉抓取切割,请查看我对此question的答案。

但可能是一个更简单的方法也适用于此。您可以尝试将强blur应用于渐变图像而不是精确匹配,并查看在这种情况下给您带来的差异。下面的图片展示了当我改变二元蒙版中的差异时的想法。

enter image description here enter image description here