Jestem nowy w MatLab. Bawiłem się i czytałem przewodnik, ale nie mogę rozwiązać tej sytuacji.Odblokowywanie obrazu na Matlab
I usuwa szum przy użyciu algorytmu Gaussa. To się udało, ale nie udało mi się uzyskać tego obrazu, próbowałem użyć algorytmu Richardson-Lucy deblurring, ale to nie działa. Każdy pomysł, jak mogę to rozwiązać? Thx z góry.
Oto co zrobiłem do tej pory.
obraz size = 21KB wymiar image = 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');
Kiedy próbowałem za pomocą filtru mediany, mam to wyjście
Błąd przy użyciu medfilt2
oczekiwana liczba wejściowego 1, , aby być dwuwymiarowym.Błąd medfilt2> parse_inputs (linia 106)
validateattributes (a, { 'numeryczny', 'logiczny'}, { '2d' 'prawdziwy'} mfilename, 'A', 1);Błąd w medfilt2 (linia 48)
[a, mn, padopt] = parse_inputs (varargin {:});Błąd w a1q21 (linia 2)
J = medfilt2 (img);
i moje obecne wyniki są następujące.
Szum w obrazie wejściowym wygląda bardziej jak szum solno-pieprzowy. Spróbuj użyć [filtra median] (http://www.mathworks.com/help/images/ref/medfilt2.html), aby go usunąć. – Shai
@shai Thnx. Spróbowałem użyć filtra medianowego. Problem polega na tym, że obraz nie jest w 2D, a mój wykładowca powiedział mi, że nie muszę w ogóle konwertować obrazu. Jedyne, co mi powiedziała to to, że powinienem użyć algorytmu Richardsona-Lucy deblurring. – Harvin
co masz na myśli, że Twój "obraz nie jest 2D"? możesz odfiltrować medianę każdego kanału i ponownie je połączyć. Spróbuj porównać wyniki. – Shai