利用python opencv实现图像自适应二值化
【摘要】
对灰度图像利用阈值得到一个二值化的图像,是常最常用的图像处理技术之一。例如,灰度大于127的图像设置为1、小于127的设置为0,这种处理便是固定阈值127的二值化处理。
自适应的二值化处理不同于固定阈值的处理,每个像素的阈值依赖于其邻近的像素灰度,为了得到(x,y)点的阈值T(x,y),我们需要进行以下处理。 在此像素周边选取一个bxb的区域,其中了是用户指...
对灰度图像利用阈值得到一个二值化的图像,是常最常用的图像处理技术之一。例如,灰度大于127的图像设置为1、小于127的设置为0,这种处理便是固定阈值127的二值化处理。
自适应的二值化处理不同于固定阈值的处理,每个像素的阈值依赖于其邻近的像素灰度,为了得到(x,y)点的阈值T(x,y),我们需要进行以下处理。
- 在此像素周边选取一个bxb的区域,其中了是用户指定的。
- 计算此bxb区域的加权平均值。OpenCV提供了两种方法计算此加权均值,一种是算术平均法,另一种是高斯加权平均法,后者要计算均值时距离区域中心越近权重越大。我们将得到的加权均值计为WA(x,y)
- 将上述加权均值与一固定参数相减得到阈值T(x,y),此固定参数设为param1,则(x,y)点的阈值可以用下式进行计算:
T(x,y)=WA(x,y)-param1
这便是得到阈值的过程,下面我们在利用OpenCV库编程实现固定阈值和自适应阈值的方法,我将在IPython环境下实现。
导入必要的模块
- 1
- 2
- 1
- 2
- 1
- 2
读取图像
读取图像,并把图像转换为灰度图像并显示之。
- 1
- 2
- 3
- 4
- 5
- 6
- 1
- 2
- 3
- 4
- 5
- 6
- 1
- 2
- 3
- 4
- 5
- 6
固定阈值二值化
我们首先进行固定阈值二值化处理,固定阈值二值化处理利用cv2.threshold函数,此函数的原型为:
- 1
- 1
- 1
其中:
- src 为输入图像;
- thresh 为阈值;
- maxval 为输出图像的最大值;
- type 为阈值的类型;
- dst 为目标图像。
此例中我们将阈值设置为50,阈值类型为cv2.THRESH_BINARY,则灰度在大于50的像素其值将设置为255,其它像素设置为0。
- 1
- 2
- 3
- 4
- 5
- 1
- 2
- 3
- 4
- 5
- 1
- 2
- 3
- 4
- 5
效果如下:
算术平法的自适应二值化
算术平均法的自适应二值化利用cv2.adaptiveThreshold实现,此函数的原型为:
- 1
- 1
- 1
其中:
- src 为输入图像;
- maxval 为输出图像的最大值;
- adaptiveMethod 设置为cv2.ADAPTIVE_THRESH_MEAN_C表示利用算术均值法,设置为cv2.ADAPTIVE_THRESH_GAUSSIAN_C表示用高斯权重均值法;
- thresholdType: 阈值的类型;
- blockSize: b的值;
- C 为从均值中减去的常数,用于得到阈值;
- dst 为目标图像。
此例中我们将b设置为5,常数设置为10。
- 1
- 2
- 3
- 4
- 5
- 1
- 2
- 3
- 4
- 5
- 1
- 2
- 3
- 4
- 5
得到的结果如下图所示:
高斯加权均值法自适应二值化
高斯加权均值法自适应二值化也是利用cv2.adaptiveThreshold, 此函数的原型与上述相同:
- 1
- 1
- 1
其中:
- src 为输入图像;
- maxval 为输出图像的最大值;
- adaptiveMethod 设置为cv2.ADAPTIVE_THRESH_MEAN_C表示利用算术均值法,设置为cv2.ADAPTIVE_THRESH_GAUSSIAN_C表示用高斯权重均值法;
- thresholdType: 阈值的类型;
- blockSize: b的值;
- C 为从均值中减去的常数,用于得到阈值;
- dst 为目标图像。
- 1
- 2
- 3
- 4
- 5
- 1
- 2
- 3
- 4
- 5
- 1
- 2
- 3
- 4
- 5
处理结果如下:
就这么简单,显然自适应方法要比固定阈值的方法效果更好
。
文章来源: blog.csdn.net,作者:网奇,版权归原作者所有,如需转载,请联系作者。
原文链接:blog.csdn.net/jacke121/article/details/75444872
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)