공부/영상처리

[영상처리]Graylevel Transformations

오비루 2022. 10. 31. 15:15
728x90
728x90

Graylevel Transformations

ð  그레이 스케일 입력 영상을 그레이 스케일 출력 영상으로 변환.

ð  I’(x,y) = f( I ( x , y ) ) [다음과 같이 수식 하나로 기술 가능하다]

 

여기서, f를 통해 기존의 값을 바꿔서 동일한 위치에 화소 값을 덮어 쓸 수도 있다.

이러한 함수는 LUT화 하여 처리 가능.

 

Arithmetic Operations (c = gain, b = bias)

-       Inversion : I’(x,y) = 255 – I(x,y)

n  최대 그레이 레벨에서 감산하여 각 화소의 값을 반전시킴.

-       Addition(Subtraction) : I’(x,y) = I(x,y) + b

n  여기서 b는 밝기를 조절하는 상수값으로,

u  b>0 = 밝아짐

u  b<0 = 어두워짐

n  I’(x,y)의 값이 255보다 큰 값이 저장 될 수 있기에(overflow) 이를 방지하고자 Clamping(Clipping)이 필요하다.

u  I’(x,y) = max(min(I(x,y)+b,255),0)

u  해당 함수를 사용하면 0~255 범위의 값이 나타난다.

-       Multiplication(Division) :  I’(x,y) = c * I(x,y) (c>0 인 경우만 생각)

n  c>1 : higher contrast (밝아짐) <이때의 contrastaddition보다 더 좋다>

n  0<c<1 : lower contrast (어두워짐)

n  마찬가지로 overflow 발생이 가능하기에 Clipping이 필요하다

u  I’(x,y) = min(c*I(x,y),255) 이때, c>1이어야 한다.

u  0이하로 값이 떨어지지 않기에 max는 필요하지 않음

 

 

Linear Contrast Stretching (선형 대비 늘이기)

(해당 사진의 모든 값은 g’max ~ g’min 범위 내에 존재한다. 이외의 값은 clipping 처리)

출력 대비를 극대화하기 위해 일반적으로 g’min = 0 , g’max = 255를 설정하여 전체 출력범위를 활용

따라서 다음을 통해 식을 단순화하면, g’max - g’min 대신 255를 대입하면 된다.

 

 

è  위의 두 방식의 단점으로는 누군가 변화의 매개 변수를 수동으로 지정해야 한다는 점이 있다.

 

 

 

 Analytic Transformations (분석적 변화)

ð  산술 연산 외에도 그레이 레벨 변화는 로그함수, 지수함수, 멱함수 와 같은 분석함수를 통해 명시 가능하다.

아래의 사진을 보면 모든 변화들이 단조적으로 감소하지 않는 것이 확인된다.

왼쪽 사진 = 출력단에서 어두운 부분이 더 넓어지고, 밝은 구간은 좁아지는 결과를 보여줌.

오른쪽 사진 = 출력단에서 밝은 부분이 더 넓어지고, 어두운 구간이 더 좁아지는 결과를 보여줌

 

Thresholding (임계치 적용)

ð  특정 임계치보다 높으면 1로 설정하고, 그렇지 않으면 0으로 설정

여기서, 타우는 임계치(문턱값)를 의미하며, 최종적으로 임계치 적용이 된 영상은 이진화라고도 한다.

 

화소당 1 byte를 사용하고, 0이 아닌 출력 값을 1 대신 255로 설정하여 출력을 그레이 스케일 영상으로 저장하는 것이 더 편리. (2진수 0&1 이 아니고, 0&255로 저장)

 

 

Lookup Tables (매우 중요)

ð  이는 동일한 변환을 미리 계산하는 계산상의 효율을 높이는 방법이다.

ð  이때 lut의 함수를 픽셀수 만큼 지정하는 것은 비효율적이기 때문에 화소 값인 0~255로 지정한다.

ð  I’(x,y) = lut [I(x,y)]

 

다음 사진의 빨간 부분으로 표시된 수를 보면 입력 위치에서 2LUT를 지나며 출력 위치에서는 1로 나타남을 확인 가능하다.

이 같은 LUT를 통해 반복 계산하는 과정을 제거할 수 있다.

728x90
반응형

'공부 > 영상처리' 카테고리의 다른 글

[영상처리]Gaussian Kernel 2D  (0) 2022.11.04
[영상처리]Warping  (0) 2022.11.03
[영상처리]Interpolation(보간법)  (0) 2022.11.02
[영상처리]Graylevel Histograms  (0) 2022.11.01
[영상처리]Geometric transformation(process)  (0) 2022.10.30