创建项目 | 文件与显示 | 像素操作 | 图像彩色类型转换 | 模糊、平滑、去噪 | 锐化、边缘检测 | 二值化 | 形态学 | 位置变换 | 直方图 | 霍夫变换 | 图像优化 | 图像分割
一、二值化方法
在OpenCvSharp,threshold函数专门用来对灰度图像进行二值化。给定一个阈值thresh,最大值maxval,函数在不同的二值化类型下,功能表现如下表所示:
类型 | >thresh | <=thresh |
THRESH_BINARY | maxval | 0 |
THRESH_BINARY_INV | 0 | maxval |
THRESH_TRUNC | thresh | src |
THRESH_TOZERO | src | 0 |
THRESH_TOZERO_INV | 0 | src |
以THRESH_BINARY为例,代码:
Mat src = new Mat(img_number, ImreadModes.Grayscale);
Mat result = src.Threshold(150, 255, ThresholdTypes.Binary);
result.SaveImage(img_result);
其效果为:
二、大津法
二值化一般用来区分背景和前景,但对于任意的图片,我们并不知道背景和前景区分的阈值是多少。大津法是计算阈值较好的一个算法。
Mat src = new Mat(img_word, ImreadModes.Grayscale);
Mat result = src.Threshold(0, 255, ThresholdTypes.Otsu);
result.SaveImage(img_result);
效果如下: