numpy5 Gamma Correction (감마 보정) 함수 설명 이미지가 너무 어둡거나 밝은 경우, 픽셀 값의 변화를 통해 밝기를 보정하는 작업을 합니다. 간단한 방법으로는 모든 픽셀 값을 동일한 비율만큼 증가시키거나 감소시키는 것입니다. 이를 선형적 방법이라고 부릅니다. 하지만 선형적 방법으로 보정을 하게 되면 전체적인 밝기가 일괄적으로 변화하게 됩니다. 반면, Gamma correction (감마 보정)은 모든 픽셀을 동일한 비율로 변화시키지 않습니다. 위의 식처럼 픽셀 값들이 각각 다른 비율로 변하게 되고, 이러한 변화방법을 비선형 방법이라고 부릅니다. 아래 그래프처럼 감마 값에 따라 변화의 방향이 달라집니다. gamma > 1이면 어두운 영역의 변화폭은 크고 밝은 영역의 변화폭은 작습니다. 그러므로 밝은 영역이 급격하게 밝아지지 않고 유지되면서, 어.. 2021. 11. 19. Invert (색반전) 함수 설명 이미지에서 중요한 영역이 주변보다 어두운 경우, 반전된 이미지를 이용하면 해당 영역을 좀 더 쉽게 관찰할 수 있습니다. 또는 색반전을 통해 원본 이미지와는 다른 분위기의 새로운 이미지를 얻을 수 있습니다. 색반전의 원리는 아래와 같습니다. 반전된 이미지의 픽셀 값 = (이미지가 표현할 수 있는 최대 픽셀 값) - (원본 이미지의 픽셀 값) 예를 들어, 8bit 이미지의 경우 각 픽셀이 0부터 255의 값을 가지기 때문에 새로운 이미지는 255 에서 원본 이미지의 픽셀 값을 뺀 값을 가집니다. RGB 칼라 영상의 경우는 3 channel 별로 각각 위의 작업을 진행해줍니다. 코드 설명 python에서 색반전을 할 수 있는 방법은 다양합니다. 그 가운데 몇가지 방법에 대해 소개하도록 하겠습니다. .. 2021. 11. 10. Zero Padding 함수 설명 이미지를 다루다보면 이미지의 가로와 세로의 비를 1:1로 조정하여 사용하는 경우가 많습니다. 단순하게 Resize 함수를 사용할 수 있지만, 가로와 세로의 비가 1:1이 아닌 이미지를 강제로 1:1로 만들면 이미지가 해당 방향으로 늘어지게 됩니다. 만약 중요한 feature가 위처럼 늘어나버리게되면 이상해질 수 있습니다. 이럴때 원본 이미지의 비율을 유지하면서 영상의 크기를 조정하는 함수가 바로 Zero Padding입니다. Zero Padding은 이미지의 위/아래 혹은 양 옆에 0으로 이루어진 값들을 추가하여 가로 세로의 비율을 1:1로 맞춰줍니다. 코드 설명 python3 기반 numpy 라이브러리를 사용했습니다. np.pad(src, margin, mode='constant') 1) s.. 2021. 11. 9. Z-Score Standardization (표준화) 함수 설명 Z-score를 통해 데이터를 표준화하는 방법입니다. Z-score란 각 값이 평균에서 얼마나 떨어져 있는지를 나타내는 척도로서 Z-score 변환 식은 다음과 같습니다. x= 원본 이미지의 픽셀 값 µ= 원본 이미지의 픽셀 평균 값 σ = 원본 이미지의 픽셀의 표준편차 위의 수식을 이용하면 이미지의 픽셀값들을 종 모양의 정규 분포 형태로 바꿔줍니다. Min-Max Normalization은 무조건 [0-1] 사이의 값으로 만들지만, Standardization은 데이터에 따라 값의 범위가 조금씩 달라집니다. 코드 설명 python3 기반 numpy 라이브러리를 사용했습니다. mean_value = np.mean(image) std_value = np.std(image) output = (im.. 2021. 11. 8. Min-Max Normalization (정규화) 함수 설명 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 imp.. 2021. 11. 4. 이전 1 다음 728x90