【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):
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):
相关文章推荐
- Opencv学习笔记-----图像阈值化处理
- opencv学习笔记(十六)利用cvGetSubRect截取图像
- OpenCV2学习笔记(十六):Stitching图像拼接
- zynq-7000学习笔记(十六)——opencv采集USB摄像头图像
- OpenCV学习笔记(十六)——CamShift研究 OpenCV学习笔记(十七)——运动分析和物体跟踪Video OpenCV学习笔记(十八)——图像的各种变换(cvtColor*+)imgproc
- 图像的像素点操作【OpenCV学习笔记3】
- Opencv学习笔记-显示图像
- C# OpenCV学习笔记四之图像二值化
- OpenCV学习笔记(8)VS2008 MFC下使用OpenCV2.0进行简单图像处理
- 我的OpenCV学习笔记(18):使用Sobel变化和拉普拉斯变换检测图像边沿
- OpenCV学习笔记(7)图像的通道(channels)问题
- OpenCV学习笔记-图像分割
- 我的OpenCV学习笔记(14):用直方图对比完成基于内容的图像检索
- OpenCV学习笔记(八)——图像处理之直方图ImgProc
- OpenCV学习笔记(16)双目测距与三维重建的OpenCV实现问题集锦(一)图像获取与单目定标
- 【OpenCV学习笔记5】读取图像中任意点的像素值
- openCV学习笔记(5)-- 图像形态学
- OpenCV学习笔记-显示图像
- opencv学习笔记之Mat,图像的新容器
- 我的OpenCV学习笔记(五):给图像加上边框