> 백엔드 개발 > 파이썬 튜토리얼 > Python 이미지 처리를 위한 이진화 방법의 예 모음

Python 이미지 처리를 위한 이진화 방법의 예 모음

coldplay.xixi
풀어 주다: 2020-07-27 17:10:50
앞으로
2583명이 탐색했습니다.

Python 이미지 처리를 위한 이진화 방법의 예 모음

Python을 이미지 처리에 사용할 때 이진화는 매우 중요한 단계입니다. 이제 제가 접한 6가지 이미지 이진화 방법을 정리했습니다(물론 이것이 전부 이진화 방법은 아닙니다. 새로운 방법이 새로 추가될 예정입니다. 하나가 발견되었습니다).

관련 학습 권장사항: python 비디오 튜토리얼

1. opencv 단순 임계값 cv2.threshold

2. opencv 적응형 임계값 cv2.adaptiveThreshold(적응형 임계값에서 임계값을 계산하는 두 가지 방법이 있습니다:mean_c 및 guassian_c 어느 것이 가장 잘 작동하는지 시도해 보세요.

예:

https://scikit-image.org/docs/dev/auto_examples/segmentation/plot_niblack_sauvola.html

import cv2
import numpy as np
from matplotlib import pyplot as plt

img = cv2.imread('scratch.png', 0)
# global thresholding
ret1, th1 = cv2.threshold(img, 127, 255, cv2.THRESH_BINARY)
# Otsu's thresholding
th2 = cv2.adaptiveThreshold(img, 255, cv2.ADAPTIVE_THRESH_MEAN_C, cv2.THRESH_BINARY, 11, 2)
# Otsu's thresholding
# 阈值一定要设为 0 !
ret3, th3 = cv2.threshold(img, 0, 255, cv2.THRESH_BINARY + cv2.THRESH_OTSU)
# plot all the images and their histograms
images = [img, 0, th1, img, 0, th2, img, 0, th3]
titles = [
  'Original Noisy Image', 'Histogram', 'Global Thresholding (v=127)',
  'Original Noisy Image', 'Histogram', "Adaptive Thresholding",
  'Original Noisy Image', 'Histogram', "Otsu's Thresholding"
]
# 这里使用了 pyplot 中画直方图的方法, plt.hist, 要注意的是它的参数是一维数组
# 所以这里使用了( numpy ) ravel 方法,将多维数组转换成一维,也可以使用 flatten 方法
# ndarray.flat 1-D iterator over an array.
# ndarray.flatten 1-D array copy of the elements of an array in row-major order.
for i in range(3):
  plt.subplot(3, 3, i * 3 + 1), plt.imshow(images[i * 3], 'gray')
  plt.title(titles[i * 3]), plt.xticks([]), plt.yticks([])
  plt.subplot(3, 3, i * 3 + 2), plt.hist(images[i * 3].ravel(), 256)
  plt.title(titles[i * 3 + 1]), plt.xticks([]), plt.yticks([])
  plt.subplot(3, 3, i * 3 + 3), plt.imshow(images[i * 3 + 2], 'gray')
  plt.title(titles[i * 3 + 2]), plt.xticks([]), plt.yticks([])
plt.show()
로그인 후 복사

결과 그래프:


6.IntegralThreshold(주로 텍스트 감지에 사용됨)

사용법 : 다음 URL

https://github.com/Liang-yc/IntegralThreshold

에서 util.py 파일을 실행하세요. 결과 사진:

위 내용은 Python 이미지 처리를 위한 이진화 방법의 예 모음의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:jb51.net
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿