不点赞白嫖的都是流氓
自适应阈值处理代码
import cv2
img = cv2.imread("../data/pandas.jpg", 0)
t, dst = cv2.threshold(img, 127, 255, cv2.THRESH_TOZERO) # t表示返回的阈值
athdMEAN = cv2.adaptiveThreshold(img, 255, cv2.ADAPTIVE_THRESH_MEAN_C, cv2.THRESH_BINARY, 5, 3)
athdGAUS = cv2.adaptiveThreshold(img, 255, cv2.ADAPTIVE_THRESH_GAUSSIAN_C, cv2.THRESH_BINARY, 5, 3)
# 自适应的输入图片必须是单通道图片
cv2.imshow('img', img)
cv2.imshow('dst', dst)
cv2.waitKey()
cv2.destroyAllWindows()
cv2.imwrite('../data/threshold.jpg', dst)
cv2.imwrite('../data/threshold_mean.jpg', athdMEAN)
cv2.imwrite('../data/threshold_gaun.jpg', athdGAUS)
三种方式处理的对比
dst
mean
gaus
阈值处理方法的终极boss
Otsu处理
这个阈值处理的方法我最最最最最最(此处省略一万个最)喜欢,它自动帮你检索得到最优阈值,简单好用身心
废话不多说,直接上代码
import cv2
img = cv2.imread("../data/pandas.jpg", 0)
t, dst = cv2.threshold(img, 127, 255, cv2.THRESH_TOZERO) # t表示返回的阈值
t2, otsu = cv2.threshold(img, 0, 255, cv2.THRESH_BINARY+cv2.THRESH_OTSU)
# 第二个参数必须是0, 第四个参数的第一位可以是之前博客说的那五种阈值处理的方式
# 自适应的输入图片必须是单通道图片
cv2.imshow('img', img)
cv2.imshow('dst', dst)
cv2.waitKey()
cv2.destroyAllWindows()
cv2.imwrite('../data/threshold.jpg', dst)
cv2.imwrite('../data/threshold_otsu.jpg', dst)
效果图
不点赞白嫖的都是流氓
我们在邂逅相逢时用我们自身的想象做材料塑造的那个恋人,与日后作为我们的终生伴侣的那个真实的人毫无关系,这就是你搭讪别人的理由