欢迎访问我的网站,希望内容对您有用,感兴趣的可以加入我们的社群。

OpenCV中的图像二值化

OpenCV 迷途小书童 3年前 (2022-07-16) 1786次浏览 0个评论

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

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

示例

  1. import cv2
  2. import numpy as np
  3. image = cv2.imread('lenna.png')
  4. cv2.imshow("original image", image)
  5. h, w = image.shape[:2]
  6. # 转换为灰度图像
  7. gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
  8. h, w = gray.shape
  9. # 取均值作为阈值
  10. T = cv2.mean(gray)[0]
  11. print("T: {}".format(T))
  12. binary = np.zeros((h, w), dtype=np.uint8)
  13. for row in range(h):
  14. for col in range(w):
  15. pv = gray[row, col]
  16. if pv > T:
  17. binary[row, col] = 255
  18. else:
  19. binary[row, col] = 0
  20. cv2.imshow("binary", binary)
  21. cv2.waitKey(0)
  22. cv2.destroyAllWindows()

opencv

参考资料

喜欢 (0)

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