Python调用OpenCV阈值化

21 篇文章 1 订阅
21 篇文章 3 订阅

这一篇主要有两点:普通阈值化和自适应阈值化。

1、普通阈值化

普通阈值化用到的函数是cv2.threshold,其函数原型为:

threshold(src, thresh, maxval, type, dst = None)

其中,type的取值有以下几种cv2.THRESH_BINARY、cv2.THRESH_BINARY_INV、cv2.THRESH_TRUNC、cv2.THRESH_TOZERO、cv2.THRESH_TOZERO_INV,其效果如下:

 

2、自适应阈值化

自适应阈值化的函数原型为:

adaptiveThreshold(src, maxValue, adaptiveMethod, thresholdType, blockSize, C, dst = None)

其中adaptiveMethod的取值为cv2.ADPTIVE_THRESH_MEAN_C:阈值取自相邻区域的平均值和cv2.ADPTIVE_THRESH_GAUSSIAN_C:阈值取值相邻区域的加权和,权重为一个高斯窗口;blockSize是领域的大小;C是一个常数,阈值就等于的平均值或者加权平均值减去这个常数。

src = cv2.imread('lena.bmp', 0)
src1 = cv2.imread('lena.bmp', 0)
cv2.adaptiveThreshold(src, 255, cv2.ADAPTIVE_THRESH_MEAN_C, cv2.THRESH_BINARY, 11, 2, src)
cv2.imshow('ADAPTIVE_THRESH_MEAN_C', src)
cv2.adaptiveThreshold(src1, 255, cv2.ADAPTIVE_THRESH_GAUSSIAN_C, cv2.THRESH_BINARY, 11, 2, src1)
cv2.imshow('ADAPTIVE_THRESH_GAUSSIAN_C', src1)
cv2.waitKey(0)
cv2.destroyAllWindows()

发现这个函数比较奇葩,最后一个参数我这里是用了原图的变量来储存,不用一个新变量的原因是我在Python3下用的是OpenCV3.4.1,如果用一个dst代替的化就会报错,运行的效果如下:

 

秋风凄切伤离,

行客未归时。

塞外草先衰,

江南雁到迟。

芙蓉凋嫩脸,

杨柳堕新眉。

摇落使人悲,

断肠谁得知。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值