阈值分割

匿名 (未验证) 提交于 2019-12-02 23:40:02
  import cv2 import matplotlib.pyplot as plt  # 灰度图读入 img = cv2.imread('gradient.jpg', 0) # 阈值分割,ret:return value缩写,代表当前的阈值,暂时不用理会 ret, th = cv2.threshold(img, 127, 255, cv2.THRESH_BINARY) cv2.imshow('thresh', th) cv2.waitKey(0)  # 应用5种不同的阈值方法 ret, th1 = cv2.threshold(img, 127, 255, cv2.THRESH_BINARY) ret, th2 = cv2.threshold(img, 127, 255, cv2.THRESH_BINARY_INV) ret, th3 = cv2.threshold(img, 127, 255, cv2.THRESH_TRUNC) ret, th4 = cv2.threshold(img, 127, 255, cv2.THRESH_TOZERO) ret, th5 = cv2.threshold(img, 127, 255, cv2.THRESH_TOZERO_INV)  titles = ['Original', 'BINARY', 'BINARY_INV', 'TRUNC', 'TOZERO', 'TOZERO_INV'] images = [img, th1, th2, th3, th4, th5]  # 使用Matplotlib显示 for i in range(6):     plt.subplot(2, 3, i + 1)     plt.imshow(images[i], 'gray')     plt.title(titles[i], fontsize=8)     plt.xticks([]), plt.yticks([])  # 隐藏坐标轴 plt.show()   # 自适应阈值对比固定阈值 img = cv2.imread('sudoku.jpg', 0)  # 固定阈值 ret, th1 = cv2.threshold(img, 127, 255, cv2.THRESH_BINARY) # 自适应阈值 th2 = cv2.adaptiveThreshold(     img, 255, cv2.ADAPTIVE_THRESH_MEAN_C, cv2.THRESH_BINARY, 11, 4) th3 = cv2.adaptiveThreshold(     img, 255, cv2.ADAPTIVE_THRESH_GAUSSIAN_C, cv2.THRESH_BINARY, 17, 6)  titles = ['Original', 'Global(v = 127)', 'Adaptive Mean', 'Adaptive Gaussian'] images = [img, th1, th2, th3]  for i in range(4):     plt.subplot(2, 2, i + 1), plt.imshow(images[i], 'gray')     plt.title(titles[i], fontsize=8)     plt.xticks([]), plt.yticks([]) plt.show()

文章来源: https://blog.csdn.net/qq_42370150/article/details/91446013
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!