본문 바로가기
Image Processing (Python)

Min-Max Normalization (정규화)

by HanByol Jang 2021. 11. 4.
728x90

함수 설명

Min-Max Normalization은 가장 많이 사용하는 정규화 방법입니다.

 

이미지마다 제각각의 픽셀 값의 범위를 가지고 있을경우, 이를 이미지의 최대, 최소 픽셀값을 이용해 [0-1] 사이로  통일시켜줄때 사용합니다.

위의 수식을 이용하여 이미지의 최소값이 0, 최대값이 1이 되도록 픽셀 값을 조정합니다.


코드 설명

python3 기반 numpy 라이브러리를 사용했습니다. 

 

min_value = np.min(image)
max_value = np.max(image)
output = (image - min_value) / (max_value - min_value)

 

이미지의 최소, 최대 픽셀값을 구한 뒤, 수식처럼 최소값을 빼고 (최대-최소) 값으로 나누어줍니다.


예제

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

image = cv2.imread("test.jpg")

min_value = np.min(image)
max_value = np.max(image)

output = (image - min_value) / (max_value - min_value)

plt.subplot(2, 1, 1)
plt.hist(np.ravel(image), bins=32)
plt.title('Before')
plt.subplot(2, 1, 2)
plt.hist(np.ravel(output), bins=32)
plt.title('After')
plt.subplots_adjust(hspace=0.5)

plt.show()

 

Min-Max Normalization 을 적용하기 전후의 pixel value 변화

 

normalization을 한 뒤, pixel value의 분포가 0-1 사이로 바뀐것을 확인 할 수 있습니다.

728x90

'Image Processing (Python)' 카테고리의 다른 글

Image Read (이미지 불러오기)  (0) 2021.11.11
Invert (색반전)  (0) 2021.11.10
Zero Padding  (0) 2021.11.09
Z-Score Standardization (표준화)  (0) 2021.11.08
Resize  (0) 2021.11.03

댓글