2017-12-18 3 views
2

모션 블러를 제거하기 위해 deconvlucydeconvwnr 기술을 배웠으며 시뮬레이션 된 디 블러 링 된 이미지에서 잘 작동합니다. 따라서 모바일로 캡쳐 한 실제 장면에서이 알고리즘을 확인하려고했습니다. Movavi 비디오 편집기를 사용하여 비디오를 안정화했습니다.Matlab을 사용한 모션 디 블러

그리고 여기 내 코드입니다 :

I = imread('mobile_blur13.png'); 
    imshow(I); 
    lengthmin = 12; 
    lengthmax = 15; 
    thetamin =331; 
    thetamax=335; 

    figure; 
    for length = lengthmin:0.2:lengthmax 
     for theta = thetamin:0.5:thetamax 
      PSF = fspecial('motion',length,theta); 
      res = deconvlucy(I,PSF,100); 
      res2 =deconvreg(I,PSF); 
      noise_var = 0; 
      signal_var = var(double(I(:))); 
      estimated_nsr = noise_var/signal_var; 
      res1= deconvwnr(I,PSF,estimated_nsr); 
      %res = medfilt2(rgb2gray(res)); 
      f = imfilter(res, fspecial('average', [3 3])); 
      imshow(f); 
     end 
    end 

하지만, 아주 나쁜 결과를 얻고있다. 내가 뭘 잘못하고 있는지 알 겠어. 여기서 이미지 : 모의 흐림 이미지 디 블러 미리

originaldeblurred

답변

0

감사 사진 촬영 된 실제 카메라 디 블러 매우 다르다.

카메라의 움직임으로 인한 흔들림은 이미지의 품질을 크게 떨어 뜨릴 수 있습니다. 카메라 모션의 경로가 임의적 일 수 있기 때문에 모션 블러 이미지의 흐려짐을 제거하는 것은 어려운 문제입니다. 블라인드 복원이나 안정화 된 렌즈를 사용한 광학 보정과 같은이 문제를 처리하는 방법은 여러 가지가 있습니다.

해결 방법은 blind deconvolution과 deconvblind 명령을 사용하는 것입니다.

https://www.mathworks.com/help/images/ref/deconvblind.html

+0

나는 deconvblind보다 deconvwnr 다소 더 좋은 결과를 얻었다. – Anonymous

관련 문제