2013-04-06 3 views
1

가우시안 고역 통과 필터를 설계하여 이미지를 선명하게하려고합니다. 나는 하이 패스 필터가 행렬을 뺀 로우 패스 필터에 해당 사실을 사용하여이 작업을 수행하고 싶은, 그래서 나는 다음과 같은 한 : 나는 날카로운 이미지를 얻을하지 않았다MATLAB Image Sharpening - (1- 가우스 저역 통과 필터 사용)

image= imread('Question3_Data-Cats.jpg'); % read image 

H = 1 - fspecial('gaussian' ,[5 5],2); % create unsharp mask 
sharpened = imfilter(image,H); % create a sharpened version of the image using that mask 

imshow([image sharpened]); %showing input & output images 

. 대신, 나는 이미지의 작은 영역에 몇 가지 색상의 흰색 이미지를 가지고있다. 누군가 도울 수 있습니까? 고맙습니다.

+2

, 당신의 행렬을 차감하고 있다고 할 수있다 사람. –

+0

나는 H = 255-fspecial ('gaussian', [5 5], 2) 시도했다; 잘 작동하지 않았습니다. –

+0

눈을 사용해 보셨습니까? –

답변

4

이 시도 :

H = padarray(2,[2 2]) - fspecial('gaussian' ,[5 5],2); % create unsharp mask 

1 스칼라입니다. 하나는 중심에 5x5 배열이 필요합니다. 또한 밝기를 유지하려면 필터 요소의 합을 1로 설정해야하므로 빼기 양에 맞춰 중앙 값을 두 배로 늘려야합니다.

+0

괜찮 았지만이 이유는 모르겠습니다. 중간에있는 요소를 제외하고 모든 요소가 0 인 이유에 대해 자세히 설명 할 수 있습니까? 또한, "밝기를 보존"한다는 것은 무엇을 의미합니까? –

+1

필터의 동작을 각 픽셀을 인접한 픽셀의 가중치로 대체하는 것으로 볼 수 있습니다. 각 이웃에 대한 가중치는 필터 구성 요소의 크기로 제공됩니다. ID 필터는 필터의 중앙에있는 단일 필터입니다. 즉, 픽셀의 새 값이 이전 값과 완전히 동일 함을 의미합니다.가우시안 필터는 중심 주위의 여러 픽셀에서 평균을내어 흐림 효과를줍니다. 필터 값이 1.0으로 합쳐지지 않으면 전체 밝기가 변경됩니다 - 1보다 큰 경우 밝아지고 1보다 작 으면 더 어두워집니다. – nhowe

4

ggaussian 커널이고 f은 이미지가되도록하십시오. 그런 다음 f * g (컨볼 루션)은 이미지의 흐린 버전을 제공합니다. 이는 low-passed 이미지 버전을 의미합니다.

그런 다음 f - f \ast g을 고려하십시오. 즉, image - lowpass image을 의미합니다. 그러면 high-passed 버전의 이미지가 제공됩니다. 이미지 세부 정보 만 포함합니다. 세부 정보는 검은 색 바탕에 흰색으로 표시됩니다. 나는 그것이 당신이 지금 얻고있는 이미지라고 생각합니다. 당신은 화면의 이미지 정보를 추출 한 후

image detail

, 당신은 날카로운 이미지를 얻기 위해 이미지에 다시 추가해야합니다. 당신이 (이것은 언샵 마스크입니다) 이미지와 2e - g의 회선에 의해 날카롭게 이미지를 얻을 수 있다는 것을 의미

Sharpen Image

.

g을 사용하여 을 fspecial('gaussian' ,[5 5],2)을 사용하여 matlab에서 얻을 수 있습니다.

H = padarray(2,[2 2]) - fspecial('gaussian' ,[5 5],2); %create unsharp mask 

때때로 이미지 세부 정보의 밝기를 제어해야합니다. 당신은

선명하게 이미지로 = 이미지 + 알파 (이미지 정보)

control brightness of image details

당신은 행렬을 뺀하지 않을
-1
I= imread('peppers.png'); % read image 
H = padarray(2,[2 2]) - fspecial('gaussian' ,[5 5],2); % create unsharp mask % create unsharp mask 
figure,imshow(I); 
K = imfilter(I,H); % create a sharpened version of the image using that mask 
figure,imshow(K); %showing input & output images 
관련 문제