图像分割 - 阈值处理 - 自适应阈值

目录

1. 介绍

2. 代码


1. 介绍

自适应阈值也是可变阈值,采用的方法是图像中不同区域使用不同的阈值

每个区域的阈值是通过计算像素点邻域按照特定的算法得到的

因为在图像处理中,噪声和非均匀光照等等因素会影响阈值处理算法。所以,有时候基于全局的阈值处理算法效果可能就会差强人意。而自适应阈值处理,优势就在于能更好的处理明暗分布不均的图像

opencv库提供了 adaptiveThreshold 函数

图像分割 - 阈值处理 - 自适应阈值_第1张图片

 

2. 代码

import cv2
import numpy as np


img = cv2.imread("./img.png", 0)

ret, img_otsu = cv2.threshold(img, 0, 255, cv2.THRESH_OTSU+cv2.THRESH_BINARY)  # OTSU 处理

# 自适应局部阈值处理
binaryMean = cv2.adaptiveThreshold(img, 255, cv2.ADAPTIVE_THRESH_MEAN_C, cv2.THRESH_BINARY, 5,5)
binaryGauss = cv2.adaptiveThreshold(img, 255, cv2.ADAPTIVE_THRESH_GAUSSIAN_C, cv2.THRESH_BINARY, 5,3)


cv2.imshow('img',np.hstack((img,img_otsu,binaryMean,binaryGauss)))
cv2.waitKey()
cv2.destroyAllWindows()

处理结果:OTSU 返回的阈值为:143

图像分割 - 阈值处理 - 自适应阈值_第2张图片

 

 处理结果:OTSU 返回的阈值为:144

 

你可能感兴趣的:(数字图像处理,算法,图像处理)