그레이 스케일과 휘도 평활화

7841 단어 파이썬OpenCV

실행 환경



Google 공동체

Google Colaboratory에서 이미지를 로드할 준비


from google.colab import files
from google.colab import drive
drive.mount('/content/drive')


필요한 라이브러리 로드


import cv2 #opencv
import matplotlib.pyplot as plt 
%matplotlib inline
img = plt.imread("/content/drive/My Drive/Colab Notebooks/img/Lenna.bmp")
#↑この記事からplt.imreadで読み込むことにしました。

다양한 변환


plt.figure(figsize=(9, 6), dpi=100,
           facecolor='w', linewidth=0, edgecolor='w')

#オリジナル画像
plt.subplot(3,3,1)
plt.imshow(img)
plt.subplot(3,3,4)
color = ('b','g','r')
for i,col in enumerate(color):
    histr = cv2.calcHist([img],[i],None,[256],[0,256])
    plt.plot(histr,color = col)
    plt.xlim([0,256])

#グレースケール
plt.subplot(3,3,2)
gray = cv2.cvtColor(img, cv2.COLOR_RGB2GRAY) 
plt.imshow(gray)
plt.subplot(3,3,5)
plt.hist(gray.ravel(),256,[0,256])

#輝度平滑化
plt.subplot(3,3,3)
dst = cv2.equalizeHist(gray)
plt.imshow(dst)
plt.subplot(3,3,6)
plt.hist(dst.ravel(),256,[0,256])

plt.show()

결과





왼쪽부터,
오리지널/그레이 스케일/휘도 평활화

문법
그레이 스케일
cv2.cvtColor(src, cv2.COLOR_RGB2GRAY) 

휘도 평활화
cv2.equalizeHist(src)

휘도 평활화함으로써 히스토그램이 흩어지지 않고 퍼져,
명암이 알기 쉬워졌습니다.
특징을 검출하기 위해서는 이 처리를 하는 것이 좋을 것 같다.

좋은 웹페이지 즐겨찾기