opencv学习日记——3` threshold&inRange
程序员文章站
2022-04-10 23:26:49
...
示例代码:
#include<opencv.hpp>
using namespace cv;
int main()
{
Mat src = imread("1.jpg");
Mat dst1,dst2,dst3;
cvtColor(src, dst1, COLOR_BGR2GRAY);
threshold(src, dst2, 80, 255, THRESH_BINARY);
threshold(dst1, dst1, 80, 255, THRESH_BINARY);
inRange(src, Scalar(30, 30, 100), Scalar(200, 200, 255), dst3);
imwrite("1p.jpg", dst1);
imwrite("2p.jpg", dst2);
imwrite("3p.jpg", dst3);
imshow("dst1",dst1);
imshow("dst2",dst2);
imshow("dst3",dst3);
waitKey(0);
return 0;
}
代码分析:
threhold()和inRange()都为用于阈值化的函数。
threshold() 第一个参数为原图,第二个为阈值化后的图,第三个为阈值,第四个为最大值,第五个为函数的类型参数,当其为THRESH_BINARY时,若原图为单通道图,则大于阈值的像素变为max,小于阈值变为0;若原图为多通道,每个通道同理。
inRange() 第一个参数为原图,第二个参数为下限,第三个参数为上限,第四个参数为阈值化后的图,在上下限之间的像素变为255,之外的所有像素变为0。
原图
单通道threshold
多通道threshold
多通道inRange
上一篇: Java instanceof用法详解
下一篇: matlab 用m_map画地形水深图
推荐阅读
-
荐 opencv进阶学习笔记3:像素运算和图像亮度对比度调节
-
opencv3/C++ 机器学习-EM算法/Expectation Maximization
-
opencv3/C++ 机器学习-逻辑回归/Logistic Regression
-
opencv3/C++ 机器学习-提升算法/Boosting
-
基于机器学习(machine learning)的SEO实战日记3--构思
-
Opencv3学习笔记(4)之像素定位与颜色缩减
-
学习日记 | 5.18 [Python3] Python3基础与面向对象
-
Java和Scala学习日记3
-
跟我一起学习MySQL技术内幕(第五版):(第三章学习日记3)
-
荐 opencv进阶学习笔记3:像素运算和图像亮度对比度调节