如何使用opencv检测图像中的热点?我试过谷歌搜索,但无法得到它的线索。
说明 我需要从实时视频流中过滤好的图像。在这种情况下,我需要只检测帧中的热点。我需要在opencv中这样做。
什么是HotSpot?
热点是拍摄对象脸部的闪亮区域,这些区域是由闪光反射光亮表面或不均匀照明引起的。它倾向于使主体看起来好像在冒汗,这不是一个好看的。
更新 http://answers.opencv.org/question/7223/hotspots-in-an-image/ http://en.wikipedia.org/wiki/Specular_highlight
以上两个链接对我的帖子也有帮助吗?
使用HotSpot的图片:
没有HotSpot的图片:
答案 0 :(得分:9)
可以通过高斯滤波然后二值化来获得这些“热点”区域的自动粗略指示。期望“热点”比它周围的区域更亮,所以在高斯滤波之后它们将至少略微突出显示,同时,由于低通滤波的性质,图像伪像减少
示例结果如下。在简单转换为灰度后,在0.75(范围始终为[0,1])的二值化,在B
颜色空间的HSB
通道中进行高斯滤波后,在0.85处进行二值化:
在这两种情况下,由于假设“热点”不是太大,大型组件被删除了。