Notice
Recent Posts
Recent Comments
Link
DevKim
[영상처리] MATLAB 주파수 : 저역통과 및 고역통과 필터 본문
728x90
- 주파수
영상에선 정해진 공간에서 얼마나 밝기 값이 왔다갔다 반복을 많이 하는지를 말함
- 고주파 성분
: 짧은 거리 내에 밝기 값의 변화가 매우 큰 성분
(ex) 에지, 잡음 등
- 저주파 성분
: 밝기 값이 거의 변하지 않는 성분
(ex) 단색 벽,피부
1. 고역통과 필터
: 고주파 성분들을 통과시키고, 저주파 성분들을 줄이거나 제거하는 필터
→ 에지 검출 , 에지 강조
1. fspecial('laplacian')
c=imread('camera.tif');
f1=fspecial('laplacian') #필터 생성
cf1=filter2(f1,c); #필터 적용
figure,imshow(uint8(cf1)); #output이 double형이므로 uint8로 변환
. fspecial('log')
f2=fspecial('log’)
cf2=filter2(f2,c);
figure,imshow(uint8(cf2));
2. 선형필터를 적용할 때의 문제점
- 영상으로 디스플레이하기 위해서는 밝기 값아 0~255 사이에 있어야 함
but, 선형 필터 사용시 이 범위를 벗어날 수 있다..!!!!
따라서 display를 위해 0~255 밖의 값을 처리해야됨
> 방법 1. 음수를 양수로 만들기
→ 음수 문제는 해결할 수 있지만, 255 보다 큰 값은 처리할 수 없음
>방법 2. 값을 제한하기
→ 음수와 양수 문제를 모두 해결할 수 있으나
정보의 손실이 커짐
>방법 3. 스케일링 변환
→ 필터링 결과의 최소값이 0이 되도록, 최대값은 255가 되도록 선형변환 !!
<스케일링 변환>
~방법1~
mat2gray(cf2)
f2=[1-2 1; -2 4 -2;1 -2 1];
cf2=filter2(f2,c);
figure,imshow(mat2gray(cf2)); #최대값을 1, 최소값을 0으로 만듦
→ 이때 검은색 선은 원래 음수인데 작은수이고 ( 작은 음수 -> 0 )
흰색은 양수인데 큰 값 ( 0-> 127 ),
회색은 0에 가까운 색이었을 것이다(큰 양수 ->255).
~방법2~
직접 계산하기
maxcf2=max(cf2(:));
mincf2=min(cf2(:));
cf2g=(cf2-mincf2)/(maxcf2-mincf2);
figure,imshow(cf2g)
3. 고역통과 필터는 에지(edge) 검출에 자주 이용된다!
f2=[1 -2 1;-2 4 -2;1 -2 1];
cf2=filter2(f2,c);
figure,imshow(abs(cf2)>40); # abs: 절댓값 함수 - 이 조건을 만족하면 1, 만족 안하면 0으로
→ 오른쪽에서 하늘은 엣지 성분이 많이 없어 검정색으로, 바닥은 에지점들이 많이 검출됨을 확인할 수 있음
728x90
'영상처리' 카테고리의 다른 글
[영상처리] MATLAB 비선형 필터 & ROI 처리 (0) | 2020.10.07 |
---|---|
[영상처리] MATLAB 가우시안(Gaussian) 필터 & 에지 샤프닝(sharpening) (0) | 2020.10.07 |
[영상처리] MATLAB 영역 단위 처리 - Filtering ,fspecial 함수,분리 가능 필터 (0) | 2020.10.04 |
[영상처리] 영역 단위 처리 -공간 필터링,공간 회선,평균 필터,선형 필터 이론 (0) | 2020.10.04 |
[영상처리] MATLAB 히스토그램 평활화(equalization) & 룩업(Lookup) 테이블 (0) | 2020.10.04 |
Comments