二值化
二值化就是将图像上的像素点的灰度值设置为0或255,通过一个阈值来判断,假设像素的值大于100设为255,小于100设为0便是一种策略。
二值化的基于灰度图去做改变,所以所占用的数据空间较小。同时二值化凸显出了图形图像的轮廓,方便于后续基于图像的一些算法处理。
OpenCV提供的二值化接口
double threshold( InputArray src, OutputArray dst,
double thresh, double maxval, int type )
参数
- src: 输入图像数据
- dst:输出图像数据
- thresh:阈值
- maxval:二值化范围的像素表示最大值
- type:二值化的类型
例:threshold(gray, bin, 100, 255, THRESH_BINARY);
代码示例
代码语言:javascript复制int main(int argc, char *argv[])
{
Mat src = imread("3.jpg");
Mat gray;
Mat bin;
Mat ibin;
cvtColor(src, gray, COLOR_BGR2GRAY);
//二进制阈值化
threshold(gray, bin, 100, 255, THRESH_BINARY);
//反二进制阈值化
threshold(gray, ibin, 100, 255, THRESH_BINARY_INV);
namedWindow("src");
namedWindow("bin");
namedWindow("ibin");
imshow("src", src);
imshow("bin", bin);
imshow("ibin", ibin);
waitKey(0);
return 0;
}
效果图要仔细看哦