常言道“温故而知新”,写此文章就是对自己目前学习内容的小小的总结与记录。
本文力求用最简洁的语言,详细的代码将此部分内容讲解清楚,但由于博主同样是刚刚接触OpenCV,或许表达上有些瑕疵,还望读者能够指教探讨,大家共同进步。
博主机器配置为:VS2013+opencv2.4.13+Win-64bit。
若本文能给读者带来一点点启示与帮助,我就很开心了。
===========================分割线========================
1-Threshold()函数--固定阈值化操作
OpenCV提供了阈值化函数threshold(),是对单通道数组应用固定阈值操作。该函数的典型应用是对灰度图像进行阈值操作得到二值图像,有5种阈值化类型参数可供选择,下面来看看threshold()函数的定义:
double threshold( InputArray src, OutputArray dst, double thresh, double maxval, int type );
参数说明:
- 第一个参数:InputArray类型的src,输入数组,填单通道,8位或32位浮点类型Mat即可。即为输入图像。
- 第二个参数:函数运算后的结果存放在这。即为输出图像(与输入图像同样的尺寸和类型)。
- 第三个参数:double类型的thresh,阈值的具体值。根据需要自行设置。
- 第四个参数:表示预设最大值,使用THRESH_BINARY或THRESH_BINARY_INV类型。
- 第五个参数:int类型的type,表示阈值化处理的类型。具体有5类,见下文。
================================分割线====================
2-阈值化的类型
Threshold()函数有5种阈值化类型,为了解释阈值分割的过程,我们来看一个简单有关像素灰度的图片,该图如下。该图中的蓝色水平线代表着具体的一个阈值。
---------------------------------------------------------------------------------------------------------------------------
2-1阈值类型1:二进制阈值化--THRESH_BINARY
-
该阈值化类型如下式所示: