[영상처리] 5.5 Bilateral Filtering

jungizz_·2023년 6월 13일
0

Digital Image Processing

목록 보기
6/9
post-thumbnail
좀 대충 정리.....
  • 앞에서 배운걸로 Noise를 제거해봤더니 blur가 되더라~~
  • 그거 방지하기 위해 Noise는 제거하고 Edge 보존하기

◾ Gaussian 블러로 해보기 (Halos 생성)

  • 분해된 블러와 헤일로가 최종 결과 손상

◾ Bilateral filter (Halos 생성 X)

  • 그에비에 이것은 안에만 블러되고 테두리 살아있음

시작~~

◾ Box average

  • B: 에너지를 일정하게 맞춰주기 위해 곱하는 상수(normalize)

  • Blocky한 결과가 나타난다.

◾ Gaussian Blur (Convolution)

  • 위의 blocky한 결과를 보완하기 위해 window모양을 아래와 같이 바꾼다. (동그랗고 두루뭉술)
  • σ는 window의 크기
  • related, uncertain, unrelated
  • 하지만!!! 이미지의 모든 픽셀에 똑같은 Kernel이 적용된다. 아래 그림의 2번째 픽셀 부분처럼 테두리 부분에도 똑같은 커널이 적용되면서 어두운 영역이 넓어진다.

◾ Bilateral Filter (양방향 필터)

  • 그래서 edge를 보존하고 나머지만 커널이 적용되도록 한다.
  • 아래 식에서 주황색 부분은 p~q 거리로 만든 Gaussian, 파란색 부분은 Ip, Iq(픽셀값, intensity)의 차이로 만든 Gaussian
  • 픽셀값 차이로 만든 가우시안이 추가됨
  • 가우시안의 Spatial weight function(주황색)은 target 픽셀에 가까울 수록 큰 값을 곱해준 것이고,
  • Bilateral에서 Intensity range weight function은 target 픽셀과 비슷한 intensity값을 가지는 픽셀에 더 큰 값을 부여하는 것이다.

◾ 파라미터

  • σsσ_s: 커널 크기, Spatial weight function 크기 조절
  • σrσ_r: 어디까지를 edge로 볼건지(edge의 최대 amplitude), Intensity range weight function 조절

  • σsσ_s가 커질수록 디테일한 부분이 사라짐, 평평하지만 모양은 유지 (아래로 갈수록)
  • σrσ_r가 커질수록 edge가 뭉개짐 (오른쪽으로 갈수록)
σr=0.25σ_r=0.25라면 0.25차이까지는 edge가 아니다~ 라고 하는 것

✔️ Bilateral filter가 모든 edge를 고려할 수는 없다.

  • 얇은 라인을 가지거나 비슷한 intensity값을 가지면 여전히 같이 blend된다.

◾ Bilateral filter의 반복 (iterating)

  • 포스터화

◾ 컬러 이미지의 Bilateral filter

  • 약간 다름
  • Nonlinear하고 복잡하다. (공간적으로 다양한 커널을 가진다.) -> 그래서 사전 계산 없음, FFT도 없음

◾ Application (적용)

1. Denoising

  • 높은 주파수인 노이즈를 제거하고, edge는 보존
  • 작은 σsσ_s(보통 7x7 window), 커질수록 떡짐
  • σsσ_s를 잘 조절해서 노이즈 조절하면 된다

❗ 장점: 다양한 형태로 응용 가능~
❗ 단점: 커널이 픽셀마다 바뀌니까 느림~ (seperable, fft 안됨)
profile
( •̀ .̫ •́ )✧

0개의 댓글