1 cv2.threshold()

用于获取二元值的灰度图像 。

cv2.threshold(src, thresh, maxval, type)
参数 描述 返回
src 源图片,必须是单通道,即灰度图 返回两个值:阈值、二值图
thresh 用于对像素值进行分类的阈值,取值范围0~255
maxval 填充色,如果像素值大于(有时小于)阈值则要给出的值,取值范围0~255
type 阈值类型

阈值类型表:

阈值 用数字表示 小于阈值的像素点 大于阈值的像素点
cv2.THRESH_BINARY 0 置0 置填充色maxval
cv2.THRESH_BINARY_INV 1 置填充色maxval 置0
cv2.THRESH_TRUNC 2 保持原色 置灰色
cv2.THRESH_TOZERO 3 置0 保持原色
cv2.THRESH_TOZERO_INV 4 保持原色 置0

2 栗子

import cv2

# 读入RGB图像图像
img = cv2.imread('../../DAVIS-2016/JPEGImages/1080p/flamingo/00007.jpg')
img = cv2.resize(img, (224, 224))

# 灰度化
img_gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
# 二值化
ret, binary = cv2.threshold(img_gray, 127, 255, cv2.THRESH_BINARY)

print(ret)
print(binary)


# result

127.0

[[0 0 0 ... 0 0 0]
 [0 0 0 ... 0 0 0]
 [0 0 0 ... 0 0 0]
 ...
 [0 0 0 ... 0 0 0]
 [0 0 0 ... 0 0 0]
 [0 0 0 ... 0 0 0]]

原图:

灰度图:

结果:

  • cv2.THRESH_BINARY

  • cv2.THRESH_BINARY_INV

  • cv2.THRESH_TRUNC

  • cv2.THRESH_TOZERO

  • cv2.THRESH_TOZERO_INV

参考:

 

 

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐