how to remove error ??? Error using ==> iptcheckinput Function MEDFILT2 expected its first input, A, to be two-dimensional. Error in ==> medfilt2>parse_inputs at 109 iptcheckinput(a, {'numeric','logical'}, {'2d','real'}, mfilename, 'A', 1); Error i
3 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
>> i=imread('chm.jpg'); imshow(i) noisy_img = imnoise(i,'salt & pepper',0.02); imshow(noisy_img) k = medfilt2(noisy_img); close all; subplot(211);imshow(noisy_img); subplot(212); imshow(k);
0 commentaires
Réponse acceptée
DGM
le 11 Déc 2024
The image is a JPG. Most JPGs are RGB. Medfilt2() only accepts a single-channel input. You either need to make the input single-channel (gray), or you need to filter it channelwise. Alternatively, you can use medfilt3() with a single-page window specification.
% the inputs
inpict = imread('peppers.png');
winsize = [9 9];
% use medfilt2() in a loop
op1 = inpict;
for c = 1:size(inpict,3)
op1(:,:,c) = medfilt2(inpict(:,:,c),winsize,'symmetric');
end
% use medfilt3() with the window depth set to 1
op2 = medfilt3(inpict,[winsize 1],'symmetric');
% the results are identical
immse(op1,op2)
% show it
imshow(op2)
0 commentaires
Plus de réponses (0)
Voir également
Catégories
En savoir plus sur Visualization and Data Export dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!