我有两个相关问题:
-
我正在 OpenCV 中使用以下命令进行颜色对象检测inRange
阈值函数。如果我手动选择 HSV 下限和上限,我会得到出色的结果,但这对照明条件非常敏感。是否有一种算法可以根据目标和背景的 HSV 值确定最佳阈值范围?
例如,以下是我正在使用的值:
目标 HSV 值:[15, 37, 51]
背景 HSV 值:[90,21,211]
inRange
是简单的逐像素过滤器。它不会动态改变阈值条件。是否存在与自适应阈值或大津阈值相当的颜色?或者一种可以利用目标和背景的先验 HSV 值的算法?
如果图像的大部分内容或多或少相同(例如大部分是背景),则可以执行以下操作:
计算图像中像素值的中值 (M)。有些人使用平均值,但我更喜欢中值,因为它的鲁棒性。
计算图像中像素值的中值绝对偏差 (MAD)。与标准差相比,我更喜欢它的稳健性。
落在 (M - k * MAD) 和 (M + k * MAD) 之间范围内的所有内容都将成为背景(或对象)。根据您的应用选择常数“k”的值(我猜它会在 1 到 5 之间)。
小提示,如果这是您第一次使用 MAD:在正态分布的情况下,1 个标准差大约等于 1.5 MAD。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)