최근 일부 네티즌들의 가우시안 블러 필터 연구에 깊은 인상을 받아 다음과 같이 정리합니다. 가우시안 블러(Gaussian Blur)는 일종의 디지털 이미지 템플릿 처리 방법입니다. 해당 템플릿은 2차원 정규 분포(가우스 분포) 함수를 기반으로 계산됩니다.
정규분포는 A. Demoivre가 이항분포의 점근식을 구하면서 처음으로 구해졌습니다. C.F. Gauss는 측정 오류를 연구할 때 다른 각도에서 이를 도출했습니다. 추신: Laplace와 Gauss는 그 특성을 연구했습니다. 따라서 가우시안 블러라는 이름이 붙었습니다.
1차원 정규분포의 함수 정의:
확률변수 유형의 분포, 첫 번째 매개변수 μ는 뒤에 오는 확률변수의 평균값입니다. 정규분포에서 두 번째 매개변수 σ2는 이 확률변수의 분산이므로 정규분포는 N(μ, σ2)로 기록됩니다. 정규 분포를 따르는 확률 변수의 확률 규칙은 μ에 가까운 값을 취할 확률이 높고, μ에서 멀어지는 값을 취할 확률이 작을수록 분포가 더 집중된다는 것입니다. 는 μ에 가깝고, σ가 클수록 분포는 작아집니다. 정규분포의 밀도함수의 특징은 μ를 중심으로 대칭이고, μ에서 최대값에 도달하고, 양(음)의 무한대에서 0의 값을 가지며, μ±σ에서 변곡점을 갖는다. 그 모양은 중앙이 높고 양쪽이 낮으며, x축 위에서는 종 모양의 곡선을 이루는 형상이다. μ = 0, σ2 = 1일 때, 이를 표준 정규 분포라고 하며 N(0, 1)로 기록됩니다.
두 상수의 의미: μ-기대값, σ^2 분산.
이제 첫 번째 질문인 가우시안 블러 필터의 반경은 얼마인지 풀어보겠습니다. 답은 공식에서 가우스 반경이 σ라는 것입니다.
가우스 곡선의 모양과 반경의 의미는 다음 그림에 나와 있습니다(Adobe SDK의 기술 지원 전문가 문서에서 발췌).
> 가우스 곡선이 반경(σ)은 곡선의 모양에 영향을 미칩니다. σ가 작을수록 곡선은 더 높고 더 날카로워집니다. 2차원 이미지의 경우 종 모양의 표면입니다. 가우스 반경이 작을수록 표면은 더 높고 날카롭고 가파르고 가우스 반경이 클수록 표면은 더 낮고 완만합니다. 따라서 가우시안 반경이 작을수록 흐림 효과가 작아지고, 가우시안 반경이 클수록 흐림 효과가 커집니다. 가우스 반경에 대한 ps의 범위 정의는 [0.1~250]임을 알 수 있습니다. 반경이 0.1인 경우 계산 후 가우시안 템플릿의 가운데 픽셀만 1이고 나머지 픽셀은 모두 = 0(실제로는 0에 거의 접근)이므로 이미지가 변경되지 않습니다.
두 번째 질문은 가우스 템플릿 크기와 가우스 반경의 관계는 무엇입니까? 이것은 항상 우리를 괴롭히는 오해입니다. 우리의 생각이 물리적 구현에 대한 오해에 빠졌기 때문입니다. 물리적 구현에서 가우스 템플릿은 제한되어 있으므로 이 질문에 대한 실제 대답을 무시하게 됩니다. 가우스 템플릿은 논리적으로 제한되지 않습니다. 즉, 가우스 템플릿은 본질적으로 논리적으로 무한하게 확장된 표면의 근사치입니다. 따라서 템플릿 크기는 무한하다고 간주해야 합니다. 단지 계산 중에 거리가 0에 가까워지기 때문에 더 이상 특정 임계값 아래의 값을 고려하지 않습니다. 이 임계값은 템플릿 경계입니다.
다음은 2차원 가우스 표면의 공식입니다(x, y는 픽셀의 템플릿 좌표를 나타내고 템플릿 중심 위치가 원점입니다).
🎜>
高斯模板(guass radius=0.700000)
:
1 2 1
2 4 2 /16
1 2 1
실제 검증 결과, 이 3*3 템플릿은 가우스 반경이 약 0.849일 때 실제로 근사치라는 것을 발견했습니다. r=0.849일 때 3*3 정규화된 템플릿은 다음과 같습니다(MATLAB에서는 h=fspecial( 입력). 'gaussian', 3, 0.849); 이 템플릿을 얻으려면):
0.062467 0.125000 0.062467 0.125000 0.250131 0.125000 0.062467 0.125000 0 .062467
그런 다음 Matlab에서 imfilter를 사용하여 이미지에 가우시안 흐림 처리를 수행할 수 있습니다.
h = fspecial('gaussian', 3, 0.849); img2 = imfilter(img, h); subplot(121), imshow(img) title('원본 이미지') subplot(122), imshow(img2); title('가우시안 블러 후')
효과는 다음과 같습니다:
Matlab에서 다음과 같이 사용할 수 있습니다. 가우시안 표면 그리기: 가우시안을 그리는 Matlab 코드 표면
Actipro에서 제작한 코드 강조 표시 CodeHighlighter(프리웨어)