“大脑”生长系列(三)

2020-04-10 16:03:15 浏览数 (2)

二值化

二值化就是将图像上的像素点的灰度值设置为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;
}

效果图要仔细看哦

0 人点赞