영상 처리에서 픽셀은 가장 기본적인 처리 단위로서, 입력 영상의 한 픽셀 I(x, y)을 매핑 함수 f에 적용하면 출력 영상의 한 픽셀 O(x, y)를 얻을 수 있다.
1. 픽셀 더하기(Pixel Addition)
픽셀 더하기 연산은 동일한 크기의 두 영상으로부터 대응되는 좌표의 각 픽셀들은 더하여 결과 영상에 매핑하는 방법이다.
수식과 같이 입력된 두 영상 P와 Q의 동일 좌표 픽셀들의 값을 합하여 출력 영상에 입력한다.
수식과 같이 입력 영상의 픽셀에 임의의 상수값 C(C>=0)를 더하여 출력 영상에 매핑 할 수도 있다.
하지만 픽셀 더하기는 연산값이 픽셀의 최대값인 255를 초과할 경우 오버플로우(overflow)가 발생할 수 있는데, 이러한 문제를 해결하기 위해 다음과 같은 방법을 사용한다.
- Saturation : 픽셀값이 설정된 최대값을 초과할 경우 초과된 값을 미리 설정된 최대값(255)로 교체하는 방법이다.
- Wrapping : 픽셀값이 설정된 최대값을 초과할 경우 초과된 값에서 최대값+1을 뺀 값으로 픽셀값을 교체한다. 예를 들어 최소값이 0이고 최대값이 255라면 256값은 0으로, 267값은 1을 갖는다.
- 최대-최소 정규화 방법(max-min normalization) : 픽셀 을 미리 설정된 최대값(max)과 최소값(min)사이 (예,0~255)의 값으로 재계산하는 방법이다. 이렇게 되면 픽셀의 최대값은 255를 갖고 나머지 값들은 0~255미만의 값을 갖게 된다.
2. 픽셀 빼기(Pixel Subtraction)
픽셀 빼기 연산은 더하기 연산과 마찬가지로 동일한 크기의 두영상으로부터 동일한 좌표의 각 픽셀들을 뺀 값을 결과 영상에 입력하는 방법이다. 아래 수식에서와 같이 입력된 두 영상 P와 Q의 동일 좌표 픽셀들의 값을 뺄셈하여 출력 영상 O(x,y)에 입력한다.
뺄셈의 경우 결과값이 음수가 될 수 있으므로 아래와 같이 뺄셈 연산에 절대값을 취하여 입력할 수도 있다.
또는 한 개의 영상에 임의의 상수값 C(C>=0)를 빼고 출력 영상에 입력할 수도 있다.
3. 픽셀 곱하기(Pixel Multiplication)
픽셀 곱셈 연산은 동일한 크기의 두 영상으로부터 동일한 좌표의 각 픽셀 곱을 결과 영상에 입력하는 방법이다. 아래 수식에서와 같이 입력된 두 영상 P와 Q의 동일 좌표 픽셀등의 값을 곱하여 출력 영상 O(x,y)에 입력한다.
한 개의 영상에 임의의 상수값 C(C>=0)를 곱하고 그 결과값을 출력 영상에 입력할수도 있다.
상수값 C는 1보다 작은 부동소수점이 될 수도 있는데, 이 경우 출력 영상의 밝기(intensity)는 원 영상P보다 떨어질 수 있다. 컬러 영상의 경우 목적에 따라 R, G, B 각 채널에 서로 다른 상수값을 곱함으로써 출력 영상의 색상을 조절 할 수 있다.
픽셀 곱셈에서도 오버플로우가 발생 할 수 있는데, 이 경우 픽셀 덧셈에서의 방법과 마찬가지로 saturation, wrapping, 최대-최소 정규화 방법들을 사용할 수 있다.
4. 픽셀 나누기(Pixel Division)
픽셀 나누기 연산은 동일한 크기의 두영상으로부터 동일한좌표의 각 픽셀들을 나눈 값을 결과 영상에 입력하는 방법이다. 아래수식에서와 같이 입력된 두 영상 P와 Q의 동일 좌표 픽셀들을 나눈 값을 출력 영상O(x,y)에 입력한다.
한 개의 영상을 임의의 상수값(C(C>=)로 나누고 그 결과값을 출력 영상에 입력할수도 있다.
픽셀 나누기에서는 연산된 값이 부동소수점 값이 될 수 있는데, 출력 영상에는 정수형으로 입력되어야 하므로 결과값에서 소수점 이하를 버림 혹은 반올림을 취한다. 나누는 값(divisor)에 해당하는 Q영상과 나뉘는 영상 P의 픽셀값에 변화가 없을 경우 출력 영상에는 1이 입력되고, Q의 픽셀 값이 증가했을 경우 출력 영상 O의 픽셀 값은 0보다 크고 1미만의 값을 갖는다. 반대로 Q의 픽셀 값이 증가했을 경우 출력 영상 O의 픽셀 값은 1보다 크고 255보다 작은 값을 갖는다.
원본 영상을 검은색 영상으로 나누어 줌으로써 원본영상의 배경은 전체적으로 밝은 색을 갖고 검은색 옷을 입은 카메라 맨은 원래 색을 유지하는 것을 알 수 있다.
'영상처리 프로그래밍 > 파이썬과 코랩 기반 OpenCV 영상처리' 카테고리의 다른 글
영상의 화질 향상 기법-임계값 적용하기(Thresholding) (0) | 2022.07.26 |
---|---|
영상의 화질 향상 기법- 전역 임계값 적용하기(Global Thresholding) (0) | 2022.07.26 |
영상의 화질 향상 기법-히스토그램(Histogram) 만들기 (0) | 2022.07.25 |
영상의 산술(Arithmetic) 및 논리(Logic) 연산 (2) (0) | 2022.07.19 |
영상처리의 기초 및 표현 (0) | 2022.07.15 |