擅长:python、mysql、java
<p>我想你现在遇到的问题是由于HSV数据的缩放以适应8位。正常情况下,我确信您在使用GIMP时注意到HSV等级如下:</p>
<blockquote>
<pre><code>H -> [0, 360]
S -> [0, 100]
V -> [0, 100]
</code></pre>
</blockquote>
<p>但是,OpenCV按如下方式重新映射这些值:</p>
<blockquote>
<pre><code>(H / 2) -> [0, 180] (so that the H values can be stored in 8-bits)
S -> [0, 255]
V -> [0, 255]
</code></pre>
</blockquote>
<p>这就是为什么您计算的色调值是30而不是60。因此,要过滤掉除黄色以外的所有颜色,<code>cvInRangeS</code>调用如下所示:</p>
<pre><code>cvInRangeS(imgHsv, cvScalar(25, 245, 245, 0), cvScalar(35, 255, 255, 255), imgThreshold);
</code></pre>
<p>第四个通道不用于HSV。这个调用将给你10计数噪声在你的颜色检测器阈值为每个维度。在</p>
<p>如前所述,您的阈值应该可以工作,但是您可能需要扩展阈值边界来捕捉图像中的黄色。在</p>
<p>希望有帮助!在</p>