2013-08-27 9 views
7

Ich bin neu in MatLab. Herum gespielt und gelesen durch den Hilfsführer, aber ich kann nicht scheinen, diese Situation zu lösen.Image deblurring auf Matlab

enter image description here

Ich habe durch die Verwendung Gaußsche Algorithmus das Rauschen entfernt. Das war erfolgreich, aber ich habe es nicht geschafft, das Bild klar zu machen, ich habe versucht, den Richardson-Lucy Deblurring-Algorithmus zu verwenden, aber es funktioniert nicht. Irgendeine Idee, wie kann ich das lösen? Thnx im Voraus.

Hier ist, was ich bisher getan habe.

image size = 21kb Bildabmessung = 264 x 126

img = imread('car_plate.jpg') 
subplot(331); 
imshow(img), title('Original Image') 

PSF = fspecial('gaussian',15,15); 
blur = imfilter(img,PSF,'replicate'); 
subplot(332);imshow(blur);title('Filter image'); 

motion_noise = fspecial('disk', 7); 

luc1 = deconvlucy(img,motion_noise); 
subplot(333); imshow(luc1); 
title('Disk and Lucy'); 

LEN = 9; THETA = 1; 
motion_noise2 = fspecial('motion', LEN, THETA); 


luc2 = deconvlucy(blur,motion_noise2); 
subplot(334); imshow(luc2); 
title('Motion and Lucy'); 

Wenn i unter Verwendung von Medianfilter versucht, i diese Ausgabe

erhielt

Fehler unter Verwendung medfilt2
Erwartete Eingangsnummer 1, A um zweidimensional zu sein.

Fehler in medfilt2> parse_inputs (Zeile 106)
validateattributes (a, { 'numerisch', 'logisch'}, { '2D', 'echt'}, mfilename, 'A', 1);

Fehler in medfilt2 (Zeile 48)
[a, mn, padopt] = parse_inputs (varargin {:});

Fehler in a1q21 (Zeile 2)
J = medfilt2 (img);

und meine aktuellen Ergebnisse sind dies.

enter image description here

+0

das Rauschen im Eingangsbild sieht eher aus wie „Salz-und-Pfeffer“ Lärm. Versuchen Sie, [median filter] (http://www.mathworks.com/help/images/ref/medfilt2.html) zu verwenden, um es zu entfernen. – Shai

+0

@shai Thnx. Ich habe versucht, Median-Filter zu verwenden. Problem ist, das Bild ist nicht in 2-D und mein Dozent sagte mir, dass ich das Bild nicht konvertieren muss. Das einzige, was sie mir sagte, war, dass ich den Richardson-Lucy Deblurring-Algorithmus verwenden sollte. – Harvin

+0

was meinst du dein "bild ist nicht 2-D"? Sie können jeden Kanal median filtern und neu kombinieren. Versuchen Sie, die Ergebnisse zu vergleichen. – Shai

Antwort

4

Sie verwenden die falschen Punktverteilungsfunktionen für Ihren debluring Algorithmus (Pillbox ist eine schlechte Wahl). Für beste Ergebnisse Filter mit einem Medianfilter, um das S & P-Rauschen zu entfernen und dann mit einem Gaußschen Kern zu deblurieren. Ich würde die Bewegung deblur überspringen, da das Bild nicht stark gerichtete Unschärfe zu haben scheint. Sie müssen mit dem Sigma des Schärfungsfilters spielen, um die besten Ergebnisse zu erzielen.

img = imread('car_plate.jpg') 
subplot(331); 
imshow(img), title('Original Image') 

blur = medfilt2(img,[3 3]); 
subplot(332);imshow(blur);title('Filter image'); 

deblurSigma = 10; %Adjust this to get the most visually pleasing results 
motion_noise = fspecial('gaussian', 15,deblurSigma); 
luc1 = deconvlucy(img,motion_noise); 
subplot(333); imshow(luc1); 
title('Disk and Lucy');