OpenCV学习: 阈值分割

目标

  • 使用固定阈值、自适应阈值和Otsu阈值法”二值化”图像

  • OpenCV函数:cv2.threshold(), cv2.adaptiveThreshold()

 

教程

固定阈值分割

固定阈值分割很直接,一句话说就是像素点值大于阈值变成一类值,小于阈值变成另一类值。

 

 

 

import cv2

#读入灰度图

img = cv2.imread('xxa.Jpeg')

#阈值分割
#cv2.threshold()用来实现阈值分割 ,四个参数:原图 , 设定阈值, 最大阈值, 阈值方式
ret,th = cv2.threshold(img,127,255,cv2.THRESH_BINARY)
cv2.imshow('th',th)
cv2.waitKey(0)

 

 

 

 

自适应阈值

看得出来固定阈值是在整幅图片上应用一个阈值进行分割,它并不适用于明暗分布不均的图片cv2.adaptiveThreshold()自适应阈值会每次取图片的一小部分计算阈值,这样图片不同区域的阈值就不尽相同。它有5个参数,其实很好理解,先看下效果:

 

cv2.THRESH_BINARY

大于阈值转为最大值,小于转为0

cv2.THRESH_BINARY_INV

inv---反转

cv2.THRESH_TRUNC

大于阈值部分为阈值,小于不变

cv2.THRESH_TOZERO

大于阈值保持不变,小于设为0

cv2.THRESH_TOZERO_INV

inv---反转

 

posted @ 2020-12-12 17:05  西西里啊  阅读(255)  评论(0编辑  收藏  举报