如何在图像中找到明亮区域(以及如何在图像中找到阴影区域)
Posted
技术标签:
【中文标题】如何在图像中找到明亮区域(以及如何在图像中找到阴影区域)【英文标题】:How to find bright areas inside an image (and also how to find shaded areas in an image) 【发布时间】:2019-07-31 09:31:38 【问题描述】:我有一张图片:
如何在图像中找到不同强度的区域?如何找到与原始亮度不同的所有明亮区域,相反,如何找到在这种情况下源自阴影的暗区域?
人眼能意识到亮度的变化,但程序如何做到这一点?
【问题讨论】:
你说的亮度是指设定值吗? 对于初学者,我可以这样说:如果红色在范围内(240, 255),蓝色在范围内(240, 255),绿色在范围内(240, 255),那个像素很亮,但我正在寻找比这更聪明的方法来查看每个像素,如果有的话。 你想要一个直方图吗? docs.opencv.org/4.1.1/d1/db7/tutorial_py_histogram_begins.html 只是想知道(因为我是这个主题的新手),你能拿一组像素,然后找到它的平均值吗? @Zlatomir 这很有趣,但是我如何在图像上绘制它:“好的,这些区域真的很亮,在这些区域给我画一个红色矩形”,或者:“这些区域很漂亮黑暗,在那些区域给我画一个圆圈”,仅适用于非常黑暗和非常明亮的部分,如果你明白我的意思吗? 【参考方案1】:找出一张图片中的亮点和暗点: 对此有多种方法。我在这里只推荐其中的几个。
您可以找到图像 RGB 值的平均值,并使用与平均值相差最大的 10% 像素作为较暗的像素,并将与平均值相差最大的 10% 像素用作平均值为更亮的像素。
您可以为亮像素设置预定义阈值,例如 RGB=[220,220,220] 和暗像素为 RGB=[30,30,30] 并遍历图像并对像素进行相应分类。
您还可以研究第二种方法的动态阈值,并且可以相应地优化您解决问题的方法。
发现亮点和暗点的变化: 也有多种方法可以处理这个问题。一种方法可以是平均值减法技术。人眼对感知到的先前图像的变化做出反应。程序需要在需要将更改与先前捕获的帧进行比较时执行相同的操作。查看时间过滤以进一步了解这一点..
希望这有帮助
【讨论】:
以上是关于如何在图像中找到明亮区域(以及如何在图像中找到阴影区域)的主要内容,如果未能解决你的问题,请参考以下文章