영상 처리 기본 연산
- 영상 처리의 기본 연산 3가지인 점 연산, 영역 연산, 기하 연산을 다루고자 한다.
1. 점 연산 : 각 픽셀 값을 독립적으로 수정하는 것으로, 새 픽셀 값은 이전 값에만 의존하며 이전과 동일한 위치에 사상된다.
2. 영역 연산 : 이웃 화소를 같이 고려하여 새로운 값을 결정한다. 주로 컨볼루션(Convolution) 을 통해 이루어지며, 잡음 제거 및 대비 향상 등 필터링 위한 작업에서 쓰일 수 있다.
3. 기하 연산 : 이미지에 적용되는 기하학적 연산은 일반적으로 이미지를 변환하고 재구성 또는 비교를 위한 연산이다. 이때 점 연산과는 다르게 이전 위치와는 다른 픽셀 값을 가져오는 데, 이러한 부분은 영상을 회전하거나 특정 부분을 확대하는 작업에서 쓰일 수 있다.
분류 | 기준 | 예시 |
---|---|---|
점 연산 | 픽셀 1개만 사용 | 밝기/감마 보정, 반전, 이진화 |
영역 연산 | 주변 픽셀 포함 | 블러, 엣지 검출, 컨볼루션, 미디언, 형태학 연산 등 |
기하 연산 | 픽셀 위치 변경 (좌표 변환) | 회전, 확대, 와핑, 투시 변환 등 |
1. 점 연산
밝기 보정(Brightness Correction)
-
디지털 영상에서 각 픽셀의 일반적인 값은 밝기 정보로, 각 픽셀에 일정한 값을 더하거나 곱하는 방식으로 전체 밝기나 대비를 조절할 수 있다.
-
각 픽셀의 그레이스케일 값 혹은 RGB 값에 일정한 값을 더하거나 곱하는 과정을 수식으로 나타내면 아래와 같다.
-
덧셈 방식 (Offset / Bias)
- : 밝기 증가
- : 밝기 감소
- 곱셈 방식 (Gain / Contrast scale)
- : 명암 대비 증가
- : 명암 대비 감소
- 종합 (밝기 + 대비)
감마 보정(Gamma Correction)
-
인간의 눈이 빛(밝기)를 감지하는 방식은 선형이 아닌 비선형이다.
-
예를 들어:
- 실제 빛의 세기가 2배로 증가해도, 인간은 2배 더 밝다고 느끼지 않음.
- 어두운 곳에서는 작은 밝기 차이도 잘 구분하지만, 밝은 곳에서는 차이를 잘 모름.
-
이러첨, 인간이 빛의 세기를 느끼는 방식은 로그 스케일 또는 거듭제곱 스케일에 가까우며, 이를 감마 특성(Camma Characteristic) 이라 부른다.
-
따라서, 기계가 측정한 선형 밝기 데이터를 사람이 보는 방식에 맞게 변형해줘야 더 자연스럽게 느낌.
-
픽셀 값에 지수 함수를 적용하는 방식의 감마 보정 수식은 아래와 같다.
- 픽셀 max 값을 이용해 픽셀 값을 정규화 후 를 이용해 지수 연산을 한 뒤, 다시 max 값을 곱해 원래의 픽셀 값으로 복원한다.
- 값에 따른 보정 결과는 아래와 같다.
2. 영역 연산
- 영상 처리에서 영역 연산(region-based operations)은 픽셀 하나의 값이 주변 픽셀(지역)의 값들에 따라 결정되는 연산을 말한다.
- 이는 주변 정보까지 고려해서 영상의 구조나 패턴을 파악하거나 수정할 수 있도록 해주기 때문에, 영상 필터링, 경계 검출, 블러, 샤프닝 등에서 핵심적인 역할을 한다.
컨볼루션(Convolution) 및 마스크(Mask)
- 커널(kernel) 또는 마스크(mask)를 영상 위에 슬라이딩하며 지역적으로 연산함.
- 마스크(=커널 =필터) 를 어떤 형태로 설정하느냐에 따라, 이미지의 잡음(노이즈)를 제거하거나, 엣지를 검출하는 등의 다양한 목적에 맞는 결과를 출력할 수 있다.
- 좌측 스무딩 필터인 Low pass filtering 의 경우, 어떤 점의 값이 주위에 비해 아주 낮게 된다면, 해당 값과 주변을 평균하는 필터링을 통해 자신은 커지고 주위는 작아진다. 즉 이러한 필터링은 잡음을 누그러뜨리는 효과를 발휘한다. 그러나 부작용으로 경계를 흐릿하게 만드는 블러링(Blurring) 이라는 부작용이 있다.
- 중간의 샤프닝 필터는 스무딩 필터와 반대로 에지를 선명하게 해서 물체의 식별을 돕는 작업을 한다. 즉, 영상 에지(밝기가 급격이 변하는 부분) 근방에서 픽셀 값의 명암비가 커지도록 해야 한다는 것이다.
- 우측의 엠보싱 필터는 물체에 돋음 느낌을 주는 필터로, 이미지의 솟음 또는 패임 효과를 준다. 이때 엠보싱 필터는 오른쪽 아래 화소에서 왼쪽 위 화소를 빼는 연산을 수행하는데, 화소값이 급격하게 변하는 부분에서는 화소가 일정 구간 밖에 존재할 수 있기에 이를 일정값 더해주고 축소해주는 변환을 하기도 한다.
- 실습 참고: Spatial Filters - Averaging filter and Median filter in Image Processing - GeeksforGeeks
기하 연산
- 영상 처리에서 기하 연산은 픽셀의 위치를 변경하거나 재배치하는 연산을 말할 수 있다.
- 기하 연산은 영상의 좌표 공간에 대한 연산으로, 픽셀의 공간적 배치를 변경하여 영상을 이동, 회전, 확대/축소, 왜곡하는 등의 처리를 수행한다.
- 대표적인 기하 연산인 이동, 회전, 스케일 변환에 대한 픽셀 계산식은 아래와 같이 표현할 수 있다.
이동 (Translation)
- 영상 전체를 x축 또는 y축 방향으로 평행 이동
회전 (Rotation)
- 원점 또는 특정 중심점을 기준으로 영상 회전
확대 및 축소 (Scaling)
- 영상의 크기를 확대 및 축소
다양한 기하 연산들
- 다양한 영상 2D/3D 변환 참고: (Image Geometry) 2D 변환, (Image Geometry) 3D 변환