Fourier transform for image data set
2 views (last 30 days)
Show older comments
Hello everyone
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 but I can't find a way to access all 10 subfolders, and convert the images using (for loop).
This code gives me an error (MAP must be a m x 3 array) in (I = rgb2gray(I);) because of the size of (I).
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 regars
0 Comments
Answers (1)
KALYAN ACHARJYA
on 17 Nov 2020
Edited: KALYAN ACHARJYA
on 17 Nov 2020
"This code gives me an error (MAP must be a m x 3 array) in (I = rgb2gray(I);) because of the size of (I)."
May be you are using Gray Scale Images, if yes then remove the rgb2gray assignmnet line and rest code will be same.
See Also
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!