LoG (Laplacian of Gaussian) 과 GoL (Gaussian of Laplacian) filtering은 같을까?


L : laplacian filter

G : gaussian filter

I : image


라 가정하자.


LoG 는 L*G*I

GoL 은 G*L*I


convolution은 교환법칙이 성립하므로


이론적으로 L*G*I = G*L*I 가 성립한다.


실제 구현에서는 어떨까?


1) lena image를 입력한 경우

좌측상단: 원본 이미지

우측상단: Gaussian filtering 된 이미지

좌측하단: LoG filtered image

우측하단: GoL filtered image


희미하지만 LoG결과와 GoL 결과의 차이가 보인다.



2) Gaussian noise가 섞인 Lena image


좌측상단: 원본 이미지

우측상단: Gaussian filtering 된 이미지

좌측하단: LoG filtered image

우측하단: GoL filtered image


원본 이미지에 noise가 섞여있을 경우, LoG와 GoL의 차이는 보다 뚜렷해진다.


이론적으로는 두 결과가 같아야 하는데, 왜 이런 차이점이 생기는 것일까?


답은 data 표현형에 있다.


image를 unsigned char로 load한 경우, 

filtering 결과가 data형에 맞게 clipping되기 때문에, 

정확도 면에서 손실이 발생한다.

(image를 double형으로 cast하면, 두 결과가 유사하게 나온다.)

따라서, 실제 구현에서는 이 점을 염두하고, 

image를 unsigned char로 읽어 들이는 경우에는, LoG를 사용해야 한다.





소스


  I=loadImage('lena.jpg', 640); % image resize

  

%   I = imnoise(I,'gaussian',0,0.02);

%    I = imnoise(I,'salt & pepper',0.02);

  figure(1);

  imshow(I);

  

%   I = double(I);

  

  G = fspecial('gaussian',[5 5], 2);

  L = fspecial('laplacian');

  LoG = fspecial('log',[7 7],2);

  LoG1= conv2(L,G);

  LoG2= conv2(G,L);

  

  Ig = imfilter(I,G,'same');

  figure(2);

  imshow(Ig);

  Ilg = imfilter(Ig,L,'same');

  

  figure(3);

  imshow(Ilg);

  

  Il=imfilter(I,L,'same');

  figure(4);

  imshow(Il);

  

  Igl = imfilter(Il,G,'same');

   figure(5);

  imshow(Igl);

  


  diff1 = abs(int8(Ilg)-int8(Igl));

%   diff1 = int8(abs(int8(Ilg - Igl)));

  figure(6);

  imshow(diff1);

  sum(sum(diff1))

  

  Ilog = imfilter(I,LoG,'same');

  figure(7);

  imshow(Ilog);

  

  Ilog1 = imfilter(I,LoG1,'same');

  Ilog2 = imfilter(I,LoG2,'same');

  

  figure(8);

  imshow(Ilog1);

  figure(9);

  imshow(Ilog2);


%   diff=Ilog1-Ilog2;

%   abs(int8(Ilg)-int8(Igl));

diff=abs(int8(Ilog1)-int8(Ilog2));

  sum(sum(diff))

'연구관련' 카테고리의 다른 글

The Computer Vision Industry  (0) 2013.05.30
SIFT 설명 slide  (0) 2013.04.04
Separable Gaussian Filtering  (1) 2013.04.04
패턴인식 자료 참고  (0) 2013.03.25
Statistical Pattern Recognition Toolbox (matlab)  (0) 2013.03.25
Posted by 우주여행가
,