【拜小白opencv】35 | opencv inrange threshold
常言道“温故而知新”,写此文章就是对自己目前学习内容的小小的总结与记录。本文力求用最简洁的语言,详细的代码将此部分内容讲解清楚,但由于博主同样是刚刚接触OpenCV[1],或许表达上有些瑕疵,还望读者能够指教探讨,大家共同进步。博主机器配置为:VS2013+opencv[2]2.4.13+Win-64bit。若本文能给读者带来一点点启示与帮助,我就很开心了。====================分割线====================此函数作用:可实现二值化功能(这点类似threshold()函数),更关键的是可以同时针对多通道进行操作,使用起来非常方便!主要是将在两个阈值内...
常言道“温故而知新”,写此文章就是对自己目前学习内容的小小的总结与记录。
本文力求用最简洁的语言,详细的代码将此部分内容讲解清楚,但由于博主同样是刚刚接触OpenCV[1],或许表达上有些瑕疵,还望读者能够指教探讨,大家共同进步。
博主机器配置为:VS2013+opencv[2]2.4.13+Win-64bit。
若本文能给读者带来一点点启示与帮助,我就很开心了。
====================分割线====================
此函数作用:可实现二值化功能(这点类似threshold()函数),更关键的是可以同时针对多通道进行操作,使用起来非常方便!
主要是将在两个阈值内的像素值设置为白色(255),而不在阈值区间内的像素值设置为黑色(0),该功能类似于之间所讲的双阈值化操作。
(双阈值化部分请见文章:【拜小白opencv】23-双阈值化操作[3])
下面来看看inRange()函数的定义:
void inRange(InputArray src, InputArray lowerb, InputArray upperb, OutputArray dst); 参数解释: 参数1:输入要处理的图像,可以为单通道或多通道。参数2:包含下边界的数组或标量。参数3:包含上边界数组或标量。参数4:输出图像,与输入图像src 尺寸相同且为CV_8U 类型。请注意:该函数输出的dst是一幅二值化之后的图像。
------------------------------------------------------------------------------------------------
处理方式:
对于单通道数组:
即,如果一幅灰度图像的某个像素的灰度值在指定的高、低阈值范围之内,则在dst图像中令该像素值为255,否则令其为0,这样就生成了一幅二值化的输出图像。
...