如何在图像中找到明亮区域(以及如何在图像中找到阴影区域)

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] 并遍历图像并对像素进行相应分类。

您还可以研究第二种方法的动态阈值,并且可以相应地优化您解决问题的方法。

发现亮点和暗点的变化: 也有多种方法可以处理这个问题。一种方法可以是平均值减法技术。人眼对感知到的先前图像的变化做出反应。程序需要在需要将更改与先前捕获的帧进行比较时执行相同的操作。查看时间过滤以进一步了解这一点..

希望这有帮助

【讨论】:

以上是关于如何在图像中找到明亮区域(以及如何在图像中找到阴影区域)的主要内容,如果未能解决你的问题,请参考以下文章

如何在此类图像中找到最大的空白空间?

iOS:如何在按钮中显示阴影图像?

如何裁剪仅在透明区域显示的图像?

如何在颤动中显示具有顶部和底部渐变阴影的图像?

如何在二进制图像中找到特定点?

如何使图像亮度均匀(使用 Python/PIL)