这篇文章主要讲解了“c++ OpenCV怎么使用InRange对HSV颜色进行分割”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“c++ OpenCV怎么使用InRange对HSV颜色进行分割”吧!
引用>
<强> API函数强>
空白InRange (InputArray src, InputArray lowerb, InputArray upperb, OutputArray dst)
<人力资源/>
官方文档中的解释:检查数组元素是否在另外两个数组元素值之间。这里的数组通常也就是矩阵垫或向量。请注意:该函数输出的dst是一幅二值化之后的图像。
<强>使用示例1:针对单通道图像强>
dst (I)=lowerb (I) 0≤src (I) 0 & lt;upperb (I) 0
即,如果一幅灰度图像的某个像素的灰度值在指定的高、低阈值范围之内,则在dst图像中令该像素值为255,否则令其为0,这样就生成了一幅二值化的输出图像。
<强>使用示例2:针对三通道图像强>
dst (I)=lowerb (I) 0≤src (I) 0 & lt;upperb (I) 0∧lowerb (I) 1≤src (I) 1 & lt;upperb (I) 1∧lowerb (I) 2≤src (I) 2 & lt;upperb (I) 2
即,每个通道的像素值都必须在规定的阈值范围内!<强>代码演示强>
引用>我们再新建一个项目名为opencv video2,按照配置属性(VS2017配置opencv通用属性),然后在源文件写入# include和主方法
所以我们在代码中先把这两个范围值定义出来
然后我们在视频播放的时候需要对原始图像转换变HSV图像,然后通过InRange把颜色分割后显示出来
运行后的效果就是文章开始的视频、下面是视频中的屏幕截图
<强>上面的视频中我们可以看出来,蓝色的都已经获取下来了,说一下重点:强>
<李>
<强>图像必须先通过cvtColor转换为HSV的图像强>
李> <李><强>定义的标量里的三个数值就是以H, S, V的参数设置的强>
李>感谢各位的阅读,以上就是“c++ OpenCV怎么使用InRange对HSV颜色进行分割”的内容了,经过本文的学习后,相信大家对c++ OpenCV怎么使用InRange对HSV颜色进行分割这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是,小编将为大家推送更多相关知识点的文章,欢迎关注!
c++ OpenCV怎么使用InRange对HSV颜色进行分割