다음과 같은 제약 조건 / 품질 메트릭을 사용하여 필터를 저역 통과시키려는 2D 이미지가 있습니다.
- 이미지에 빛을 "추가"할 수 없으므로 결과의 각 픽셀은 <= 입력의 해당 픽셀이어야합니다.
- 저역 통과 차단 주파수는
- 이 필터를 반복해서 적용하면 결과가 크게 바뀌지 않아야합니다.
- 이 알고리즘을 실행하는 데 걸리는 시간 (5MPix 이미지의 경우 5 분이 합리적으로 보입니다)
- 필터링되는 빛의 양을 최소화합니다.
다음은 단점과 함께 시도한 몇 가지 접근법입니다.
가우스 필터는 보통과 같으며 결과를 끌어 내서 구속 조건 1을 준수합니다. 이는 처음 3 점과 매우 잘 맞지만 필요한 것보다 훨씬 많은 빛을 줄입니다.
"낮은"지점을 통해 "위쪽"포물선과 그들 사이의 "아래쪽"포물선을 맞추면 부드럽게됩니다. 이것은 1D에서는 잘 작동하지만 먼저 수평으로 적용한 다음 수직으로 2D에서는 나쁜 결과를 생성합니다. 응용 프로그램에는 시간이 오래 걸리지 만 너무 오래 걸리지 않습니다. 그러나이 필터를 반복해서 적용하면 결과가 크게 변경됩니다. (1D) 입력이 완벽한 "하향"포물선 (전혀 필터링되지 않아야 함) 인 경우 시작 / 끝에 앉아있는 2 개의 "상향"포물선으로 대체됩니다.
다른 형태의 2D "기본"기능 및 선형 해석을 사용하여 최적의 매개 변수를 찾습니다. 이것은 현재 구현되고 테스트되지 않은 아이디어입니다.
신호 처리에 대한 나의 경험 영역은 거의 독점적으로 이미지 처리이므로, 다른 신호 처리 영역에서 활동하는 전문가의 의견을 통해이 문제에 대한 대안을 찾고자합니다.
2011/08/18 업데이트
현재의 반응에 기초하여, 나는 전형적인 입력의 그래프와 원래 설명한 3 가지 접근법의 결과 + 지금까지받은 제안을 추가하여 상황을 좀 더 명확하게하기로 결정했습니다. 쉬운 비교를 위해이 예제에서는 1D 필터링 만 사용했습니다.
입력 데이터:
가우스 필터 + 요구 사항 (1)을 준수하도록 필터를 내 립니다.
아래로 내리면 오른쪽에 불필요한 빛이 줄어드는 것을 알 수 있습니다.
Parabolas
내가 아는 한, 이것은 매우 훌륭합니다. 슬프게도 첫 번째 가로, 세로를 적용하여 2D로 완벽하게 변환하지는 않습니다. 이 경우, 부동 소수점 분해능에서 적합 화 된 포물선을 평가할 수 있습니다. 이는 작은 이점이지만 절대적으로 필요한 것은 아닙니다.
그레이 스케일 침식
rwong의 제안에 따라 그레이 스케일 침식을 시도했습니다. 필자는 "적합한"포물선과 같은 포물선 모양의 구조 요소를 사용했습니다. 결과는 거의 동일하므로 유망한 것으로 보입니다. 그러나 여전히 몇 가지 문제가 있습니다. 1. 내 구조 요소가 "충분히"크지 않았습니다 (이미 너비가 801 픽셀 임에도 불구하고). 1. "상향"포물선 만 있고 "하향 포물선"이 없어서 하나의 포물선으로부터의 전환을 부드럽게합니다 다음에.
중앙값 필터링
완전성을 위해서만 포함되어 있지만 실제로 원하는 것은 아닙니다.
원시 데이터
원시 입력 데이터 + 다양한 파이썬 명령을 pastebin에 붙여 넣었으므로 동일한 데이터로 실험 할 수도 있습니다.
http://pastebin.com/ASnJ9M0p