如何在OpenCV中为InRange阈值选择最佳HSV值
我有两个相关的问题:如何在OpenCV中为InRange阈值选择最佳HSV值,opencv,image-processing,threshold,Opencv,Image Processing,Threshold,我有两个相关的问题: 我正在OpenCV中使用inRangethreshold函数进行彩色对象检测。如果我手动选择HSV下限和上限,我会得到非常好的结果,但这对光照条件非常敏感。是否有一种算法可以根据目标和背景的HSV值确定最佳阈值范围 例如,以下是我正在使用的值: 目标HSV值:[15,37,51] 背景HSV值:[90,21,211] inRange是一种简单的逐像素过滤器。它不会动态更改阈值条件。是否有自适应阈值或大津阈值的颜色等价物?还是一种可以利用目标和背景的先验HSV值的算法 如果图
inRange
threshold函数进行彩色对象检测。如果我手动选择HSV下限和上限,我会得到非常好的结果,但这对光照条件非常敏感。是否有一种算法可以根据目标和背景的HSV值确定最佳阈值范围
例如,以下是我正在使用的值:
目标HSV值:[15,37,51]
背景HSV值:[90,21,211]inRange
是一种简单的逐像素过滤器。它不会动态更改阈值条件。是否有自适应阈值或大津阈值的颜色等价物?还是一种可以利用目标和背景的先验HSV值的算法如果图像的大部分大致相同(例如,大部分是背景),则可以执行以下操作:
小提示,如果这是您第一次使用MAD:1标准偏差在正态分布的情况下大约等于1.5 MAD。您可以尝试在V通道上运行otsu阈值,然后使用返回值获得V的范围
(M-k*MAD)
您是想将k*MAD
分离到(m-k)*MAD
?从我的经验来看,这很容易产生负数,而不是正数(因此下限几乎总是达到0)。@DouglasGaskell,不,这不是k*MAD。如果下限为0,没有什么不好的,只要它对当前的灰度分布有意义(通常是这样)。