如何在图像中检测热点

10

如何使用opencv检测图像中的热点?我尝试过谷歌搜索,但是没有头绪。

描述: 我需要从实时视频流中筛选出好的图像。在这种情况下,我只需要检测帧中的热点。我需要在opencv中完成此操作。

什么是热点?

热点是主体脸上的光亮区域,由闪光灯反射光线或不均匀的光照引起。它倾向于使主体看起来像在出汗,这不是一个好的外观。

更新: http://answers.opencv.org/question/7223/hotspots-in-an-image/ http://en.wikipedia.org/wiki/Specular_highlight

上述两个链接也可以对我的帖子有所帮助吗?

带有热点的图像:

enter image description here

无热点的图像:

enter image description here


@Ben 热点是指主体脸部的闪亮区域,这是由于闪光灯反射在光滑表面或不均匀照明造成的。它会让主体看起来像在出汗,这并不是一个好的效果。 - 2vision2
2
请尝试搜索“高亮检测”而不是其他内容。 - Junuxx
3
一个基本的高斯滤波器和一个简单的阈值筛选可以实现这个任务。但问题描述得太糟糕了,应该以目前的状态关闭。 - mmgp
@mmgp 谢谢您的回复。您能否再详细解释一下,这样我就可以尝试实现它了。拜托了。 - 2vision2
你可以发布一些示例图片吗? - YXD
显示剩余2条评论
1个回答

9
通过高斯滤波和二值化可以自动得到这些“热点”区域的粗略指示。预期“热点”比周围区域亮得多,因此在高斯滤波之后它们将至少稍微突出,并且由于低通滤波的特性,同时减少了图像伪影。
以下是示例结果。在简单转换为灰度图像后,使用0.75的二值化(范围始终为[0,1]),在HSB颜色空间的B通道上进行高斯滤波后使用0.85的二值化:
两种情况下都删除了大组件,因为假设“热点”不太大。

1
这种方法在许多图像上表现很差。有更好的方法,例如,请参阅此文献:http://asiair.asia.edu.tw/ir/bitstream/310904400/19115/1/99052045.pdf - fireant
@mmgp:HSB颜色空间是什么?它与HSV有何不同? - Abid Rahman K
@AbidRahmanK 我看到了不同定义,可以参考“基于区域CQ的图像索引中颜色空间效果”和“使用数字图像分析量化草坪颜色”的两篇论文,它们至少呈现了稍有不同的公式。第二篇论文的方法非常类似于 http://en.wikipedia.org/wiki/HSL_and_HSV 上的转换到HSV的方式。 - mmgp
@Shambool 和 mmgp。我希望能听到你们对我更新的部分的评论。 - 2vision2
3
@2vision2,有关去除高光反射的论文是实现你想要的好方法,但请记住没有绝对可靠的方法。而且它的运行速度可能会比较慢,这可能与你的需求有关或没有关系。同样需要说明的是,不能保证任何方法都能始终给出优秀的结果。例如,http://i.imgur.com/A5Bov2Q.png 是使用该方法得到的无高光反射图像,http://i.imgur.com/g45tHu8.png 是从问题中的示例图像开始得到的漫反射图像(顺便说一下,它们看起来有点令人毛骨悚然)。 - mmgp
显示剩余2条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接