4.정규화(normalization)
- 특정 영역에 값이 몰려있는 경우 화질을 개선하고,이미지 간의 연산 시 서로 조건이 다른경우 같은 조건으로 변경
- cv2.normalize()
cv2.NORM_MINMAX: 최소값과 최대값을 0 ~ 255로 변경(가장 많이 사용됨)
cv2.NORM_L1: 전체 합으로 나누어 정규화
cv2.NORM_L2: 단위 벡터로 정규화(제곱합의 루트로 나누어 정규화)
cv2.NORM_INF: 최대값으로 나누어 정규화
정규화를 하는 이유는 서로 조건을 다른걸 같은조건으로 만들어주고 비교할 수 있게 만드는 작업입니다.
import cv2
import numpy as np
import matplotlib.pyplot as plt
img = cv2.imread('./Hawkes.jpg', cv2.IMREAD_GRAYSCALE)
img_norm = cv2.normalize(img, None, 0, 255, cv2.NORM_MINMAX)
hist = cv2.calcHist([img], [0], None, [256], [0, 255])
hist_norm = cv2.calcHist([img_norm], [0], None, [256], [0, 255])
cv2.imshow('img', img)
cv2.imshow('img_norm', img_norm)
hists = {'hist': hist, 'hist_norm': hist_norm}
plt.figure(figsize=(5, 9))
for i, (k, v) in enumerate(hists.items()):
plt.subplot(1,2,i+1)
plt.title(k)
plt.plot(v)
plt.show()
cv2.waitKey()
노멀라이즈시키면서 규격을 맞춰주고 0~255값을 살짝 분포가 몰린것들을 볼 수 있었습니다.
확실히 보면 영상이 좀 더 화질개선이되었다는걸 알 수 있습니다.
'AI 컴퓨터 비전프로젝트' 카테고리의 다른 글
[DL] 마스크 연산_cv2.copyTo(), 동영상 합성 (0) | 2024.10.01 |
---|---|
[DL] cv2.inRange_hsv 색상추출 (0) | 2024.09.30 |
[DL] 균등화, 평탄화단점보완 CLAHE(이미지, 영상 품질관련)(3) (0) | 2024.09.28 |
[DL] 균등화, 평탄화 등 이미지 변환 활용(이미지, 영상 품질관련)(2) (1) | 2024.09.27 |
[DL] 균등화, 평탄화 등 이미지 변환 활용(이미지, 영상 품질관련)(1) (0) | 2024.09.27 |