I have a code that fetches the files about images from a folder. However, if I put two files it only returns 1 and not both. If I want to go to a directory and have two subfolders and want to get files from one folder and the other folder how can I do it?
clc;
close all;
clear;
workspace;
fontSize = 10;
imagePath = uigetdir('c:\');
imageFiles = [dir(fullfile(imagePath,'*.jpeg')); dir(fullfile(imagePath,'*.TIF')); dir(fullfile(imagePath,'*.PNG'))];
files = size({imageFiles.name},2);
filename = {imageFiles.name};
for i=1:files
f = fullfile(imagePath,char(filename(i)));
image= imread(f);
imshow(image)
FT=fft2(image);
magnitude=abs(fftshift(FT));
end

6 Kommentare

Monica Roberts
Monica Roberts am 13 Jul. 2022
This works well for me for multiple images. Is it possible that your images have different extensions other than "jpeg", "tif" or "png"? For instance, this doesn't capture "jpg" images.
PEDRO ALEXANDRE Fernandes
PEDRO ALEXANDRE Fernandes am 13 Jul. 2022
The problem is that if I want to do the FFT it only does it from one image and not from several images..
two images should appear and not just one
Geoff Hayes
Geoff Hayes am 14 Jul. 2022
@PEDRO ALEXANDRE Ferna - I'm not sure I understand. Isn't your above screen shot just showing the value for f which is a variable within your loop? Have you confirmed that imageFiles has only one file?
Stephen23
Stephen23 am 14 Jul. 2022
Bearbeitet: Stephen23 am 18 Jul. 2022
"two images should appear and not just one"
You made no attempt to tile the images or save them or something similar, so on every iteration you simply discard the previous image so in the end you will only see the final image.
You also make no attempt to store FT nor magnitude, so these will also be overwritten on every loop iteration except the last one.
P = uigetdir('c:\');
S = [... much clearer than squeezing everything onto one line:
dir(fullfile(P,'*.jpeg'));...
dir(fullfile(P,'*.TIF'));...
dir(fullfile(P,'*.PNG'))];
for k = 1:numel(S); % better to use NUMEL()
F = fullfile(P,S(k).name);
I = imread(F);
imshow(I) % discarted except the last one
FT = fft2(I) % discarded except the last one
magnitude = abs(fftshift(FT)) % discarded except the last one
end
PEDRO ALEXANDRE Fernandes
PEDRO ALEXANDRE Fernandes am 18 Jul. 2022
Good afternoon.
Stephen23 you are right. The problem is that I am not seeing a way to solve the problem..
Stephen23
Stephen23 am 18 Jul. 2022
"The problem is that I am not seeing a way to solve the problem.."

Melden Sie sich an, um zu kommentieren.

Antworten (0)

Kategorien

Kommentiert:

am 18 Jul. 2022

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by