欢迎访问本站,希望站内信息可以帮助到您!感兴趣的,可以加入我的知识星球,一对一解答!

OpenCV中的图像二值化

OpenCV 迷途小书童 0评论

二值图像指的就是只有黑与白两种颜色的图像,其中 0 表示黑色, 1 表示白色(也就是255)。

图像的二值化的一般过程是,首先将输入图像转换为灰度图,然后通过二值化方法转换为二值图像。这个过程本质上就是对数据的二分类分割,寻找合理的分割阈值至关重要。

示例

import cv2
import numpy as np

image = cv2.imread('lenna.png')
cv2.imshow("original image", image)

h, w = image.shape[:2]

# 转换为灰度图像
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
h, w = gray.shape

# 取均值作为阈值
T = cv2.mean(gray)[0]
print("T: {}".format(T))

binary = np.zeros((h, w), dtype=np.uint8)
for row in range(h):
    for col in range(w):
        pv = gray[row, col]
        if pv > T:
            binary[row, col] = 255
        else:
            binary[row, col] = 0

cv2.imshow("binary", binary)

cv2.waitKey(0)
cv2.destroyAllWindows()

喜欢 (0)

您必须 登录 才能发表评论!