how to adjust the size of the imported image to use it in (rgb2gray()) ?
1 vue (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Mohamed Ahmed
le 17 Nov 2020
Commenté : Mohamed Ahmed
le 20 Nov 2020
Hi
I = imread(fname);I'm writing a code for image dataset that has 1 main folder and 10 subfolders within, and I want to apply fourier transform to all images in these folders,
I wrote this code below. It gives me an error (MAP must be a m x 3 array) in (I = rgb2gray(I);) because of the size of (I).
I = imread(fname);
how do I make I = imread(fname) ; into the size that I can use in rgb2gray ?
can you please help me with this ?
code:
clc;
clear all;
img = dir('C:\AppliedProj\Train\0\*.jpg');
Images_num = length(img);
for i = 1:Images_num
fname = strcat('C:\AppliedProj\Train\0\', img(i).name);
I = imread(fname);
I = rgb2gray(I);
%Get Fourier Transform of an image
F = fft2(I);
% Fourier transform of an image
S = abs(F);
%get the centered spectrum
Fsh = fftshift(F);
%apply log transform
S2 = log(1+abs(Fsh));
%reconstruct the Image
F = ifftshift(Fsh);
f = ifft2(F);
path = strcat('C:\AppliedProj\New\0\', img(i).name);
imwrite(f,path);
end
Best regards
0 commentaires
Réponse acceptée
Shashank Gupta
le 20 Nov 2020
Hi Ahmed,
The error "MAP must be a m x 3 array." is generally occurs when one try to pass one channel image(possibly gray image) to
"rgb2gray" function. these function can take two types of input either one pass an RGB image or a colour map. What I understand from your code is, you intent to pass an image and the error is popping up because the image is itself Gray and it doesn't need to pass through rgb2gray function. Suggestion is to just remove or comment out that line of code and it should work for you.
Cheers
Plus de réponses (0)
Voir également
Catégories
En savoir plus sur Get Started with MATLAB 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!