您的位置:首页 > 运维架构

【OpenCV学习笔记】十六、图像阈值化

2017-03-18 17:29 288 查看
图像阈值化:

1.固定阈值——threshold()

2.自适应阈值——adaptiveThreshold()

先上PPT:















代码:

#include "opencv2/opencv.hpp"
using namespace cv;
int main()
{
//进行阈值化需是单通道图像(灰度图)
//1.以灰度图的形式读取
Mat srcImg = imread("1.bmp",CV_LOAD_IMAGE_GRAYSCALE);
//2.转换为灰度空间
//Mat srcImg = imread("1.bmp",CV_LOAD_IMAGE_COLOR);
//cvtColor(srcImg,srcImg,CV_BGR2GRAY);
Mat dstImg;

///固定阈值——threshold()
/*threshold(srcImg,dstImg,100,//给定阈值
255,//max_value
CV_THRESH_BINARY);//阈值类型.value = value>threshold ? max_value : 0*/
/*threshold(srcImg, dstImg, 100,//给定阈值
255,//max_value
CV_THRESH_BINARY_INV);//阈值类型.value = value>threshold ? 0 : max_value*/

///自适应阈值——adaptiveThreshold()
/*adaptiveThreshold(srcImg,dstImg,255,//max_value
CV_ADAPTIVE_THRESH_MEAN_C,//自适应阈值算法.先求出块中的均值,再减掉C.
CV_THRESH_BINARY,//阈值类型.只能取CV_THRESH_BINARY或CV_THRESH_BINARY_INV两者之一.
11,//来计算阈值的邻域大小,需是正奇数
5//常数值C
);*/
adaptiveThreshold(srcImg, dstImg, 255,//max_value
CV_ADAPTIVE_THRESH_GAUSSIAN_C,//自适应阈值算法.先求出块中的加权和,再减掉C.
CV_THRESH_BINARY,//阈值类型.只能取CV_THRESH_BINARY或CV_THRESH_BINARY_INV两者之一.
11,//来计算阈值的邻域大小,需是正奇数
5//常数值C
);

imshow("src", srcImg);
imshow("dst",dstImg);
waitKey(0);
return 0;
}
运行结果:
固定阈值.阈值类型(CV_THRESH_BINARY):



固定阈值.阈值类型(CV_THRESH_BINARY_INV):



自适应阈值.自适应阈值算法(CV_ADAPTIVE_THRESH_MEAN_C):



自适应阈值.自适应阈值算法(CV_ADAPTIVE_THRESH_GAUSSIAN_C):

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: