一.写在前面
阈值是什么?
简单点说是把图像分割的标尺,这个标尺是根据什么产生的。
阈值产生算法?阈值类型。(Binary segmentation)
二.分类
阈值类型一阈值二值化(threshold binary)
阈值类型一阈值反二值化(threshold binary Inverted)
阈值类型一截断 (truncate)
阈值类型一阈值取零 (threshold to zero)
阈值类型一阈值反取零 (threshold to zero inverted)
三.对应API常量
四.代码实现
/*
OpenCV 基本阈值操作学习
Michael Jiang<sencom1997@outlook.com>
2019年7月25日13:13:46
*/
#include <opencv2/opencv.hpp>
#include <iostream>
using namespace cv;
Mat src, dst, gray;
int threshold_value = 127;
int threshold_max = 255;
void threshold_demo(int, void*)
{
//色彩转换
cvtColor(src, gray, COLOR_BGR2GRAY);
threshold(gray, dst, threshold_value, threshold_max, THRESH_BINARY);
imshow("dst", dst);
}
int main()
{
//读取图像
src = imread("D:/linus.jpg", IMREAD_COLOR);
namedWindow("src", WINDOW_AUTOSIZE);
namedWindow("dst", WINDOW_AUTOSIZE);
//判断读取是否成功
if (src.empty()) {
printf("pic load failed!\n");
return -1;
}
//创建滑动条
createTrackbar("Threshold Value:", "dst", &threshold_value, threshold_max, threshold_demo);
//显示窗口
imshow("src", src);
waitKey(0);
return 0;
}