14、【opencv入门】图像阈值化threshold 一、图像阈值化简介 二、固定阈值  三、自适应阈值 四、滚动条调整参数

14、【opencv入门】图像阈值化threshold
一、图像阈值化简介
二、固定阈值
 三、自适应阈值
四、滚动条调整参数

二、固定阈值

14、【opencv入门】图像阈值化threshold
一、图像阈值化简介
二、固定阈值
 三、自适应阈值
四、滚动条调整参数

14、【opencv入门】图像阈值化threshold
一、图像阈值化简介
二、固定阈值
 三、自适应阈值
四、滚动条调整参数

14、【opencv入门】图像阈值化threshold
一、图像阈值化简介
二、固定阈值
 三、自适应阈值
四、滚动条调整参数

 三、自适应阈值

14、【opencv入门】图像阈值化threshold
一、图像阈值化简介
二、固定阈值
 三、自适应阈值
四、滚动条调整参数

14、【opencv入门】图像阈值化threshold
一、图像阈值化简介
二、固定阈值
 三、自适应阈值
四、滚动条调整参数

【示例】

 1 //图像的阈值化
 2 #include<opencv2/opencv.hpp>
 3 using namespace cv;
 4 
 5 int main(){
 6     Mat src=imread("1.jpg",0);//以灰度模式读入
 7     Mat dst;
 8     //threshold(src,dst,100,255,CV_THRESH_BINARY);
 9     //adaptiveThreshold(src,dst,255,CV_ADAPTIVE_THRESH_MEAN_C,CV_THRESH_BINARY,11,5);
10     adaptiveThreshold(src,dst,255,CV_ADAPTIVE_THRESH_GAUSSIAN_C,CV_THRESH_BINARY,11,5);
11     imshow("src",src);
12     imshow("dst",dst);
13     waitKey(0);
14     return 0;
15 }

四、滚动条调整参数

【示例】

 1 //添加滚动条调整参数
 2 #include<opencv2/opencv.hpp>
 3 using namespace cv;
 4 
 5 Mat src,dst,dst2;
 6 int thres_value=21,block_size=5,c=5;
 7 
 8 void onThreshold(int ,void*){
 9     threshold(src,dst,thres_value,255,CV_THRESH_BINARY);
10     imshow("固定阈值",dst);
11 }
12 void onAdaptiveThreshold(int ,void *){
13     if(block_size%2==0)    block_size++;//如果block_size是偶数
14     adaptiveThreshold(src,dst2,255,CV_ADAPTIVE_THRESH_GAUSSIAN_C,CV_THRESH_BINARY,block_size,c);
15     imshow("自适应阈值",dst2);
16 }
17 
18 int main(){
19     src=imread("1.jpg",0);//以灰度模式读入
20     namedWindow("固定阈值",CV_WINDOW_AUTOSIZE);
21     namedWindow("自适应阈值",CV_WINDOW_AUTOSIZE);
22     createTrackbar("Threshold", "固定阈值",&thres_value,255,onThreshold,0);
23     createTrackbar("Block_size", "自适应阈值",&block_size,255,onAdaptiveThreshold,0);
24     createTrackbar("C", "自适应阈值",&c,255,onAdaptiveThreshold,0);
25 
26     onThreshold(thres_value,0); //回调函数初始化
27     onAdaptiveThreshold(block_size,0);
28     onAdaptiveThreshold(c,0);
29 
30     imshow("src",src);
31     waitKey(0);
32     return 0;
33 }