중앙 필터
Median filter중앙 필터는 비선형 디지털 필터링 기술로, 이미지 또는 신호에서 노이즈를 제거하는 데 자주 사용됩니다.이러한 노이즈 감소는 이후 처리 결과(예: 영상의 가장자리 감지)를 개선하기 위한 일반적인 전처리 단계입니다.중앙값 필터링은 특정 조건에서는 노이즈를 제거하면서 가장자리를 보존하고(단, 아래 설명 참조), 신호 처리에도 적용되기 때문에 디지털 이미지 처리에 매우 널리 사용됩니다.
알고리즘 설명
중앙값 필터의 주요 아이디어는 각 엔트리를 인접 엔트리의 중앙값으로 대체하여 엔트리별로 신호 엔트리를 통과하는 것입니다.네이버 패턴은 "윈도"라고 불리며, 전체 신호에 걸쳐 엔트리별로 슬라이딩됩니다.1차원 신호의 경우 가장 명백한 창은 처음 몇 개의 이전 및 후속 항목일 뿐이지만, 2차원(또는 더 높은 차원) 데이터의 경우 창은 주어진 반지름 또는 타원체 영역 내의 모든 항목을 포함해야 합니다(즉, 중앙 필터는 분리 가능한 필터가 아닙니다).
1차원 예제를 사용하였습니다.
각 엔트리의 바로 전후에 엔트리가 1개 있는 3개의 윈도우 크기를 사용하여 다음과 같은 간단한 1차원 신호에 중앙 필터를 적용합니다.
- x = (2, 3, 80, 6, 2, 3)
따라서 중앙값 필터링된 출력 신호 y는 다음과 같습니다.
- y1 = med(2, 3, 80) = 3, (수치 2, 3, 80은 오름차순이므로 정렬할 필요가 없음)
- y2 = 중위수(3, 80, 6) = 중위수(3, 6, 80) = 6, (3, 80, 6은 중위수를 찾기 위해 재배치됨)
- y3 = 중위수(80, 6, 2) = 중위수(2, 6, 80) = 6,
- y4 = 중위수(6, 2, 3) = 중위수(2, 3, 6) = 3
즉, y = (3, 6, 6, 3)
경계 문제
위의 예에서는 첫 번째 값 앞에 엔트리가 없기 때문에 마지막 값과 마찬가지로 첫 번째 값이 반복되어 창을 채우기에 충분한 엔트리를 가져옵니다.이는 신호의 경계에서 누락된 창 엔트리를 처리하는 방법의 하나이지만, 특정 상황에서 선호되는 다른 속성을 가진 다른 방식이 있습니다.
- 나중에 신호 또는 영상 경계를 자르거나 자르지 않고 경계를 처리하지 마십시오.
- 신호의 다른 위치에서 엔트리를 가져오는 중입니다.예를 들어 영상의 경우 멀리 수평 또는 수직 경계에서 항목을 선택할 수 있습니다.
- 모든 창이 가득 찰 수 있도록 경계 근처로 창을 축소합니다.
2차원 중앙 필터 의사 코드
단순한 2차원 중앙 필터 알고리즘의 코드는 다음과 같습니다.
1. outputPixelValue[이미지 폭][이미지 높이] 2.창 할당 3.edgex := (가로 폭 / 2) 절사 4.edgey := (가로 폭 / 2) 절사 - edgex는 엣지 높이에서 엣지 높이로 y는 edgex에서 edgex는 0 fx로, fx는 fx는 fx에서 fx로 fx로 fx로 절사이에 대해 fx로 절사이를 수행합니다.m 0 ~ 창 높이 작업 창 [i] : = inputPixelValue[x + fx - edgex][y + fy - edgey] i : = i + 1 outputPixelValue [x][y] : = 창 높이 [ sort window [ 2 ]
이 알고리즘은 다음과 같습니다.
- 단일 색상 채널만 처리합니다.
- "경계 처리 안 함" 접근 방식을 채택합니다(경계 문제에 대한 위의 설명 참조).
알고리즘 구현 문제
일반적으로 계산 작업 및 시간의 대부분은 각 창의 중앙값을 계산하는 데 사용됩니다.필터는 신호 내의 모든 엔트리를 처리해야 하므로 이미지 등의 큰 신호의 경우 이 중앙값 계산의 효율성은 알고리즘의 실행 속도를 결정하는 데 중요한 요소입니다.위에서 설명한 순진한 구현에서는 창의 모든 엔트리를 정렬하여 중앙값을 찾습니다.단, 숫자 목록의 중간 값만 필요하므로 선택 알고리즘이 훨씬 효율적입니다.또한 일부 신호 유형(이미지의 경우 매우 자주)은 정수 표현을 사용합니다. 이 경우 창 간에 히스토그램을 업데이트하는 것이 간단하며 히스토그램의 중앙값을 찾는 것이 특별히 [1]부담이 되지 않기 때문에 히스토그램 중위수가 훨씬 더 효율적일 수 있습니다.
가장자리 보존 속성
중앙값 필터링은 선형 가우스 필터링과 마찬가지로 평활 기술의 한 종류입니다.모든 스무딩 기술은 신호의 매끄러운 패치 또는 매끄러운 영역에서 노이즈를 제거하는 데 효과적이지만 에지에는 악영향을 미칩니다.단, 대부분의 경우 신호의 노이즈를 줄이는 동시에 에지를 유지하는 것이 중요합니다.예를 들어 가장자리는 이미지의 시각적 모양에 매우 중요합니다.소규모에서 중간 수준의 가우스 노이즈의 경우, 중앙 필터는 주어진 고정 윈도우 [2]크기만큼 에지를 유지하면서 노이즈를 제거하는 데 가우스 블러보다 훨씬 우수합니다.단, 고레벨 노이즈의 경우 가우스 블러에 비해 성능이 그다지 뛰어나지 않은 반면, 스펙클 노이즈 및 염분 앤 페퍼 노이즈(충격 노이즈)의 경우 특히 [3]효과적입니다.그 때문에, 디지털 화상 처리에서는, 중앙 필터링이 매우 폭넓게 이용되고 있습니다.
「 」를 참조해 주세요.
레퍼런스
- ^ Huang, Thomas S.; Yang, George J.; Tang, Gregory Y. (February 1979). "A fast two-dimensional median filtering algorithm" (PDF). IEEE Transactions on Acoustics, Speech, and Signal Processing. 27 (1): 13–18. doi:10.1109/TASSP.1979.1163188.
- ^ Arias-Castro, Ery; Donoho, David L. (June 2009). "Does median filtering truly preserve edges better than linear filtering?". Annals of Statistics. 37 (3): 1172–2009. arXiv:math/0612422. Bibcode:2006math.....12422A. doi:10.1214/08-AOS604. MR 2509071. Zbl 1160.62086.
- ^ Arce, Gonzalo R. (2005). Nonlinear Signal Processing: A Statistical Approach. New Jersey, USA: Wiley. ISBN 0-471-67624-1.
외부 링크
- 고속 MATLAB 1차원 중앙 필터 구현
- Mathematica MedianFilter 함수
- 중앙 필터
- 고속 2차원 중앙 필터
- 고정 시간 내 2차원 중앙 필터 구현(GPL 라이센스) – 이 알고리즘의 픽셀당 실행 시간은 히스토그램 내의 요소 수(으로 여기서 n은 채널당 비트 수에 비례합니다.
- 다른 프로그래밍 언어로 작성된 구현(로제타 코드)
- 닥터 돕스 기사
- 100배 이상의 고속 가중치 중위수 필터
- Circle median filter(원 중앙값 필터) 위상 또는 방향 영상(C++/Matlab)과 같은 원 값 데이터에 대한 중앙값 필터