반응형
황선규 박사님의 OpenCV 강의를 공부하면서 정리하였습니다.
OpenCV 함수만으로 히스토그램 그리기 - cv2.line 활용
이전 포스팅에서는 plt함수를 이용해서 히스토그램을 그렸습니다.
이번 포스팅에서는 OpenCV 함수만으로 히스토그램 그리는 법을 알아보겠습니다.
## OpenCV 함수만으로 히스토그램 그리기
def getGrayHistImage(hist):
# 가장 높은 높이가 100으로 제한을 둠
imgHist = np.full((100, 256), 255, dtype=np.uint8)
histMax = np.max(hist) # histmax = 255
for x in range(256):
pt1 = (x, 100) # 시작점, 좌측 상단 기준
pt2 = (x, 100 - int(hist[x, 0] * 100 / histMax)) # 끝점, 100을 곱하고 255로 나눠 단위 통일
cv2.line(imgHist, pt1, pt2, 0) # 직선을 그려 히스토그램 그리기
return imgHist
src = cv2.imread('lenna.bmp', cv2.IMREAD_GRAYSCALE)
if src is None:
print('Image load failed!')
sys.exit()
hist = cv2.calcHist([src], [0], None, [256], [0, 256])
histImg = getGrayHistImage(hist)
cv2.imshow('src', src)
cv2.imshow('histImg', histImg)
cv2.waitKey()
cv2.destroyAllWindows()
이처럼 matplot 라이브러리를 이용하지 않고 opencv 함수만을 이용하여 히스토그램을 그릴 수 있습니다. 감사합니다.
반응형
'Python > 파이썬 OpenCV 공부' 카테고리의 다른 글
[파이썬 OpenCV] 히스토그램 평활화 - cv2.equlizeHist (0) | 2020.09.28 |
---|---|
[파이썬 OpenCV] 영상의 명암비 조절 - 히스토그램 스트레칭, 정규화(cv2.normalize) (1) | 2020.09.28 |
[파이썬 OpenCV] 영상의 히스토그램 분석하기 - cv2.calcHist (0) | 2020.09.28 |
[파이썬 OpenCV] 컬러 영상과 색 공간 - 색상 분리(cv2.split), 색상 결합(cv2.merge), 색 변환(cv2.cvtColor) (0) | 2020.09.27 |
[파이썬 OpenCV] 영상의 산술 연산 - cv2.add, cv2.addWeighted, cv2.subtract, cv2.absdiff (0) | 2020.09.27 |