一、固定阈值操作:Threshold()函数
该函数的典型应用是对灰度图像进行阈值操作得到二值图像。或者是去掉噪声,例如过滤很小或很大像素点的图像点。
double threshold( InputArray src, OutputArray dst,
double thresh, double maxval, int type );
src | 输入数组 |
dst | 存放输出结果 |
thresh | 阈值具体值 |
maxval | 取决于第5个参数,阈值类型最大值 |
type | 取阈值的方法 |
二、自适应阈值操作:adaptiveThreshold()函数
void adaptiveThreshold( InputArray src, OutputArray dst,
double maxValue, int adaptiveMethod,
int thresholdType, int blockSize, double C );
src | 输入图像 |
dst | 输出图像 |
maxValue | 给像素赋的满足条件的非零值 |
adaptiveMethod | 自适应阈值算法: ADAPTIVE_THRESH_MEAN_C/ADAPTIVE_THRESH_MEAN_C |
thresholdType | 阈值类型 |
blockSize | 计算一个阈值大小的一个像素的邻域尺寸,3/5/7 |
C | 减去加权平均后的常数项 |
#include<opencv2/opencv.hpp>
#include<opencv2/highgui.hpp>
using namespace cv;
int main()
{
Mat dst1,dst2,dst3;
Mat src = imread("F:/3.jpg");
cvtColor(src, dst1, COLOR_RGB2GRAY);
imshow("src", src);
threshold(dst1, dst2, 120, 255, THRESH_BINARY);
adaptiveThreshold(dst1, dst3, 255, ADAPTIVE_THRESH_MEAN_C, THRESH_BINARY, 5,0);
imshow("dst1",dst1);//灰度
imshow("dst2", dst2);//固定阈值
imshow("dst3", dst3);//自动阈值
waitKey(0);
return 0;
}