bilateral_filter 양방향 필터 상세 사용

1. 양방향 필터(Bilateral filter)는 에지를 보존하고 노이즈를 제거할 수 있는 필터이다. 출력 픽셀의 값은 인접 픽셀 값의 가중치 조합에 따라 달라집니다.
효과면에서 양방향 필터링은 피부 미화와 유사한 효과를 낼 수 있습니다. 피부와 정상 피부의 주름과 반점의 차이는 흑백 안구의 차이보다 훨씬 작기 때문에 전자는 매끄러워지고 후자는 보존됩니다.

bilateral_filter(Image, Image, ImageBilateral, 5, 20, 'sampling_ratio', 0.5)

원본 사진
여기에 이미지 설명 삽입
및 결과 사진
여기에 이미지 설명 삽입
2. 다음은 결함 감지의 예입니다.
원본 사진을
여기에 이미지 설명 삽입
필터링하는 shock_filter의 효과
여기에 이미지 설명 삽입
이때 재료 치아에 여전히 간섭이 있음을 알 수 있습니다.
치아의 내외간섭을 최대한 제거하고, 영상의 고주파 부분은 제거하지 않기를 바랍니다(양호영상엣지). 이 요구 사항은 우리의 요구 사항을 충족하기 위해 bilateral_filter bilateral_filter 필터링 후 효과
에만 적용됩니다 .

read_image (Image, ImageFiles[14])shock_filter(Image, SharpenedImage, 0.5, 10, 'canny', 0.8)
bilateral_filter(SharpenedImage, SharpenedImage, ImageBilateral, 9, 20, [], [])

여기에 이미지 설명 삽입
3. bilateral_filter는 이미지에 대한 양방향 필터링을 수행합니다.
연산자 서명은 다음과 같습니다:
bilateral_filter(Image, ImageJoint : ImageBilateral : SigmaSpatial, SigmaRange, GenParamName, GenParamValue: )
연산자 설명:
bilateral_filter는 가이드 이미지 ImageJoint를 사용하여 입력에 대한 공동 양방향 필터링을 수행합니다. 이미지, 결과는 imagebitral을 반환합니다.
Image와 ImageJoint는 크기와 유형이 같아야 합니다.
SigmaSpatial은 필터 마스크의 크기를 정의하고 일반 가우스 필터의 표준 편차에 해당합니다. 값이 클수록 필터의 영향을 받는 영역이 커지고 디테일이 덜 보존됩니다.
SigmaRange는 현재 픽셀을 둘러싼 ImageJoint의 픽셀에 따라 필터 마스크를 수정하는 데 사용됩니다.
가장자리가 약하고 SigmaRange보다 대비가 낮은 영역의 픽셀만 평활화에 기여합니다.
uint2 또는 실제 이미지의 대비는 SigmaRange의 기본값과 크게 다를 수 있으며 그에 따라 매개변수를 조정합니다.
현재 GenParamName 및 GenParamValue를 사용하여 정밀도와 속도 간의 균형을 제어할 수 있습니다.
4. 롤링 양방향 필터
양방향 필터는 반복적으로 적용될 수 있습니다. 이 경우 한 반복의 결과는 다음 반복의 가이드 이미지로 사용됩니다. 이는 예를 들어 대비가 높은 경우에도 원시 이미지에서 작은 구조를 제거하는 데 유용할 수 있습니다.
아래 예는 테스트 이미지에 대한 롤링 필터의 효과를 보여줍니다.
이 이미지에서 노이즈 레벨은 10 그레이 값, 어두운 영역과 밝은 영역 간의 대비는 100 그레이 값, 왼쪽 라이트 바는 10픽셀 너비, 오른쪽 라이트 바는 40픽셀 너비입니다.
노란색 선은 수평 단면의 회색 값 프로파일을 나타냅니다.
사용된 매개변수: ImageJoint 상수, SigmaSpatial=25, SigmaRange=15.

* Apply the rolling bilateral filter
  * (use a constant guide for the first iteration).
  gen_image_proto (Image, ImageJoint, 128)
  for I := 1 to 6 by 1
    bilateral_filter (Image, ImageJoint, ImageJoint, 25, 15, [], [])
  endfor


여기에 이미지 설명 삽입
롤링 필터의 첫 번째 반복에 대한 원본 (1) 입력 이미지 및 (2) 이미지.
여기에 이미지 설명 삽입
첫 번째 반복 후 결과: 더 작은 막대를 제거합니다.
여기에 이미지 설명 삽입
세 번째 반복 후 결과: 오른쪽 막대의 가장자리가 부분적으로 복원됨
여기에 이미지 설명 삽입
여섯 번째 반복 후 결과: 오른쪽 막대의 가장자리가 완전히 복원됨
4. 양방향 필터링의 실제 반복 사례

read_image (Image, 'mreut')* Edge-preserving smoothing
bilateral_filter (Image, Image, ImageBilateral, 5, 20, [], [])* Rolling filter (5 iterations)
gen_image_proto (Image, ImageJoint1, 0)for I := 1 to 5 by 1
  bilateral_filter (Image, ImageJoint1, ImageJoint1, 5, 20, [], [])
endfor

원본 이미지
여기에 이미지 설명 삽입
반복 효과 2
여기에 이미지 설명 삽입
반복 효과 5
여기에 이미지 설명 삽입

Guess you like

Origin blog.csdn.net/Douhaoyu/article/details/128625957