(一)OpenCV图像处理基础_14_基本阈值操作

Jade ·
更新时间:2024-09-21
· 760 次阅读

阈值类型
①阈值二值化(threshold binary)
超过阈值部分取最大值,不超过阈值部分取最小值
②阈值反二值化(threshold binary Inverted)
超过阈值部分取最小值,不超过阈值部分取最大值
③截断 (truncate)
超过阈值部分变为阈值,不超过阈值部分不变
④阈值取零 (threshold to zero)
超过阈值部分置0,不超过阈值部分不变
⑤阈值反取零 (threshold to zero inverted)
超过阈值部分不变,超过阈值部分置0 OTSU算法:opencv自动取最优的阈值
自适应阈值:区域阈值(而不是全局阈值) #include #include using namespace std; using namespace cv; Mat src,gray,dst; int threshold_value = 127;//阈值 int threshold_max = 255; int type_value = 2;//阈值类型 枚举 int type_max = 4; void Threshold_Demo(int, void*); int main(int argc, char** argv) { src = imread("../path.jpg"); if (src.empty()) { cout << "could not load image1..." << endl; return -1; } namedWindow("src", WINDOW_AUTOSIZE); imshow("src", src); namedWindow("dst", WINDOW_AUTOSIZE); //创建滑动条1 createTrackbar("Threshold Value:",//滑动条标签 "dst",//在哪个窗口放滑动条 &threshold_value,//阈值大小 threshold_max,//滑动条能够达到的最大值 Threshold_Demo);//滑动条移动时候的回调函数 //创建滑动条2 createTrackbar("Type Value:", "dst", &type_value, //阈值类型 type_max, Threshold_Demo); Threshold_Demo(0, 0);//回调函数 waitKey(0); return 0; } void Threshold_Demo(int, void*) { cvtColor(src, gray, COLOR_BGR2GRAY);//转换为灰度图 //阈值化操作 threshold(gray, dst, threshold_value, threshold_max , type_value); imshow("dst", dst); }

输出结果:
在这里插入图片描述


作者:丶小早



opencv 阈值

需要 登录 后方可回复, 如果你还没有账号请 注册新账号