基于OpenCvSharp的数字图像处理 - 二值化

创建项目  |  文件与显示  |  像素操作  |  图像彩色类型转换  |  模糊、平滑、去噪  |  锐化、边缘检测  |  二值化  |  形态学  |  位置变换  |  直方图  |  霍夫变换  |  图像优化  |  图像分割

完整示例项目

 

一、二值化方法

在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);

其效果为:

基于OpenCvSharp的数字图像处理 - 二值化_第1张图片

二、大津法

二值化一般用来区分背景和前景,但对于任意的图片,我们并不知道背景和前景区分的阈值是多少。大津法是计算阈值较好的一个算法。

Mat src = new Mat(img_word, ImreadModes.Grayscale);
Mat result = src.Threshold(0, 255, ThresholdTypes.Otsu);
result.SaveImage(img_result);

效果如下:

基于OpenCvSharp的数字图像处理 - 二值化_第2张图片

 

 

你可能感兴趣的:(数字图像处理,OpenCvSharp,OpenCV,C#,图像处理,二值化)