728x90
반응형
코드 및 이미지 : https://github.com/Seokii/Study_OpenCV
GitHub - Seokii/Study_OpenCV: study about OpenCV
study about OpenCV. Contribute to Seokii/Study_OpenCV development by creating an account on GitHub.
github.com
이번에는 cv2.calcHist()를 사용하여 영상(사진)의 히스토그램을 계산하고 matplotlib로 간단하게 히스토그램을 그려보도록 하겠습니다.
함수 설명
1. cv2.calcHist(image, channel, mask, histSize, ranges, .. ) -> ret
- image : 영상, 이미지 (배열)
- channel : 히스토그램 계산의 차원 목록
- mask : 특정 영역을 계산하기 위한 마스크 행렬
- histSize : 히스토그램 배열의 크기 ( X축, 히스토그램의 Bin 개수)
- ranges : 히스토그램의 범위 ( Y축, 화소의 강도 / 대부분 [0, 256] )
주피터 노트북으로 구현하기
In [1] :
import numpy as np
import cv2
from matplotlib import pyplot as plt
In [2] :
cat = cv2.imread("images/cat.jpg", cv2.IMREAD_GRAYSCALE)
- 필요한 라이브러리와 이미지를 불러옵니다.
- 이미지는 그레이스케일(흑백)로 불러왔습니다.
In [3] :
hist = cv2.calcHist([cat], [0], None, [256], [0,256])
In [4] :
hist.shape

- cv2.calHist() 함수를 사용해 이미지의 히스토그램을 계산해줍니다.
- 256개의 요소를 가진 배열이 반환 값이 되었음을 확인할 수 있습니다.
In [5] :
plt.hist(cat.ravel(), 256, [0,256])
plt.show()

- matplotlib의 .hist()를 사용해 히스토그램을 간단하게 그렸습니다.
- .ravel() 함수는 2차원 배열을 1차원 배열로 풀어주는 numpy의 함수입니다.
728x90
반응형
댓글