이번 포스팅에서는 영상 처리 분야 중 하나인 픽셀 기반 처리에 대해 이야기해보도록 하겠다. 픽셀 기반 처리는 각 픽셀의 원래 값이나 위치를 바탕으로 픽셀 값을 변경하는 기법을 의미한다. 이때 중요한 점은 각 픽셀의 변경이 다른 픽셀의 영향을 받지 않는다는 것이다.
이번 포스팅에서는 픽셀을 기반으로 하는 여러 처리 기법을 다룰 것이다. 이를 통해 픽셀을 다듬고, 깎고, 합치는 일련의 과정을 이해할 수 있을 것이다. 이번 내용에서는 산술 연산, 히스토그램 평활화, 명암대비 스트레칭 에 대해 설명하고, 다음 포스팅에서는 이진화, 역상, 영상사이에 픽셀 기반 처리 에 대해 다룰 예정이다. 이를 두 개의 포스팅으로 나누어 심층적으로 설명하도록하겠다.
1. 산술연산
영상 처리에서 산술 연산이란 화소에 일정한 값을 더하거나 빼거나 나누거나 곱하는 과정을 의미한다.
일반적으로 덧셈 및 뺄셈 연산을 영상에 적용하면 영상의 밝기를 조절할 수 있다. 반면, 곱셈 및 나눗셈 연산을 통해서는 명암 대비를 조절하는 효과를 얻을 수 있다. 이 과정의 결과는 위의 사진과 같다.
기본적으로 하나의 픽셀 값은 최대 255로 설정되어 있다. 따라서 영상 처리를 수행할 때는 결과 값이 255를 넘지 않도록 주의해야 한다.
2. 히스토그렘 평활화(Equalization)
히스토그램 평활화는 영상을 더욱 선명하게 보이도록 하는 기법이다.
히스토그램은 픽셀이 가진 명암 값에 대한 막대 그래프로, 이 그래프를 옆으로 펼치는 방법을 사용한다. 히스토그램은 명암 값의 대비 빈도수를 보여주기 때문에, 그래프만으로도 어떤 영상인지 파악할 수 있다.
이러한 기법은 영상의 명암 값이 좁은 영역에 집중되어 있을 때 특히 효과적이다. 히스토그램 평활화를 통해 명암 값을 고르게 분포시켜, 전체적인 영상의 선명도를 향상시킬 수 있다.
히스토그램 평활화의 4단계
히스토그램 평활화의 과정은 주어진 영상의 명암 값 분포를 재분배하여 보다 균일한 분포를 가진 히스토그램을 생성하는 기법이다. 이 과정은 다음의 네 단계로 구성된다.
1. 입력 영상의 히스토그램 생성
각 명암 값 j에 대한 빈도수 를 계산하여 입력 영상의 히스토그램을 생성한다.
2. 누적 빈도수 계산
각 명암 값 i에 대해, 0부터 i까지의 빈도수를 누적하여 계산한다.(누적값 sum[i])
3. 누적 빈도수 정규화
단계 2에서 구한 누적 빈도수를 정규화한다. (N은 전체 픽셀수)
4. 입력 영상에서 픽셀 값 변환
입력 영상의 각 픽셀 값 i를 정규화된 값 n[i]로 변환하여 결과 영상을 생성한다. 이를 통해 최종적으로 평활화된 히스토그램을 얻을 수 있다.
이 과정을 실제로 해보겠다.
원본데이터:
40 | 40 | 50 | 60 | 70 |
40 | 50 | 60 | 70 | 70 |
50 | 60 | 70 | 70 | 80 |
60 | 70 | 70 | 80 | 90 |
70 | 70 | 80 | 90 | 100 |
(1) 입력 영상의 히스토그램 생성(히스토그램 만드는 건 생략) + 빈도수 계산(hist[j])
40: 3
50: 3
60: 4
70: 9
80: 3
90: 2
100:1
(2) 누적 빈도수 계산(sum[i])
40: 3
50: 3+3 = 6
60: 6+4 = 10
70: 10+9 =19
80: 19+3 = 22
90: 22+2 = 24
100: 24+1 = 25
(3) 누적 빈도수 정규화
n[40] = 3 / 25 X 255 = 30.6
n[50] = 6 / 25 X 255 = 61.2
n[60] = 10 / 25 X 255 = 102
n[70] = 19 / 25 X 255 = 193.8
n[80] = 22/ 25 X 255 = 224.4
n[90] = 24 / 25 X 255 = 244.8
n[100] = 25 / 25 X 255 = 255
(4) 입력 영상에서 픽셀 값 변환
명암값 | 빈도수 hist[j] | 누적합 sum[i] | 정규화 n[i] |
40 | 3 | 3 | 30.6 |
50 | 3 | 6 | 61.2 |
60 | 4 | 10 | 102 |
70 | 9 | 19 | 198.8 |
80 | 3 | 22 | 224.4 |
90 | 2 | 24 | 244.8 |
100 | 1 | 25 | 255 |
위 방법을 사용한다면 보다 더 선명한 영상을 볼 수 있게 된다.
3. 명암대비 스트레칭
이제 알아볼 내용은 명암 대비 스트레칭이다. 이 기법은 명암값을 활용하여 히스토그램(빈도수 그래프)을 좌우로 확장하여 0에서 255까지의 값을 포함하도록 만드는 방식인데 이 방법은 max, min 차이가 작은 영상에 적합하다.
명암 대비 스트레칭은 다음과 같은 수식을 통해 표현할 수 있다. (min: 최저 픽셀값, max: 최고 픽셀값)
이제 위에 그림을 보자... 확실히 선명도가 달라진 것을 볼 수 있다.
다음 포스터
'Computer Science(컴퓨터 과학) > 영상처리' 카테고리의 다른 글
영상처리 - 영역기반 처리1 (회선, 영상의 경계처리) (0) | 2024.10.10 |
---|---|
영상처리 - 픽셀 기반 처리2 (이진화, 역상, 영상사이에 픽셀 기반 처리) (0) | 2024.10.09 |
기본적인 영상처리 알고리즘의 분류 (0) | 2024.10.09 |
영상 파일 형식 (RAW, PBM, PGM, PPM) (6) | 2024.10.09 |
컬러모델2 (HSI) (0) | 2024.10.08 |