opencv图片自动阈值处理和Otsu处理Python实现

不点赞白嫖的都是流氓

自适应阈值处理代码

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)

效果图
在这里插入图片描述

不点赞白嫖的都是流氓

我们在邂逅相逢时用我们自身的想象做材料塑造的那个恋人,与日后作为我们的终生伴侣的那个真实的人毫无关系,这就是你搭讪别人的理由

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值