Loop for reading of Images

3 vues (au cours des 30 derniers jours)
Zarrin
Zarrin le 13 Jan 2021
Hi friends.
I want to construct a matlab-code that some images, can be read and concluded. I write this code and need to change it in the form of LOOP pattern.
can enyone helpe or guide me?
Type= {['T1'],['T2'],['T3]};
TType = menu('Choose a types of weave :',' T1 ',' T2 ',' T3')
if Type==1
W=[1 1 1 ; 0 1 0 ; 0 0 1];
elseif WeaveType==2
W=[0 0 1 ; 0 0 0 ; 1 0 0];
elseif WeaveType==3
W=[0 1 1 ; 1 1 0 ; 1 0 1];
end
A1=imread('C:\Users\User\My Documents\MATLAB\1\new1.png');
A2=imread('C:\Users\User\My Documents\MATLAB\1\new2.png');
A3=imread('C:\Users\User\My Documents\MATLAB\1\new3.png');
A4=imread('C:\Users\User\My Documents\MATLAB\1\new4.png');
A5=imread('C:\Users\User\My Documents\MATLAB\1\new5.png');
A6=imread('C:\Users\User\My Documents\MATLAB\1\new6.png');
A7=imread('C:\Users\User\My Documents\MATLAB\1\new7.png');
A8=imread('C:\Users\User\My Documents\MATLAB\1\new8.png');
A9=imread('C:\Users\User\My Documents\MATLAB\1\new9.png');
B1=imread('C:\Users\User\My Documents\MATLAB\2\new1.png');
B2=imread('C:\Users\User\My Documents\MATLAB\2\new2.png');
B3=imread('C:\Users\User\My Documents\MATLAB\2\new3.png');
B4=imread('C:\Users\User\My Documents\MATLAB\2\new4.png');
B5=imread('C:\Users\User\My Documents\MATLAB\2\new5.png');
B6=imread('C:\Users\User\My Documents\MATLAB\2\new6.png');
B7=imread('C:\Users\User\My Documents\MATLAB\2\new7.png');
B8=imread('C:\Users\User\My Documents\MATLAB\2\new8.png');
B9=imread('C:\Users\User\My Documents\MATLAB\2\new9.png');
if W(1,1)==0
T1=imrotate(A1,90);
else T1=B1;
end
if W(1,2)==0
T2=imrotate(A2,90);
else T2=B2;
end
if W(1,3)==0
T3=imrotate(A3,90);
else T3=B3;
end
if W(2,1)==0
T4=imrotate(A4,90);
else T4=B4;
end
if W(2,2)==0
T5=imrotate(A5,90);
else T5=B5;
end
if W(2,3)==0
T6=imrotate(A6,90);
else T6=B6;
end
if W(3,1)==0
T7=imrotate(A7,90);
else T7=B7;
end
if W(3,2)==0
T8=imrotate(A8,90);
else T8=B8;
end
if W(3,3)==0
T9=imrotate(A9,90);
else T9=B9;
end
Final=[T1 T2 T3 ; T4 T5 T6 ; T7 T8 T9];
imshow(Final);

Réponses (1)

Aastha
Aastha le 12 Juin 2025
I understand you are looking to optimize your MATLAB code and restructure it using loops. You may refer to the following steps to achieve this:
1. In the existing code, the image file paths for the variables "A" and "B" follow a pattern from "1/new1", "1/new2", ..., "1/new9" and similarly "2/new1", ..., "2/new9".
2. You can use the "cell" function in MATLAB to create a cell array of size 9. Then, use string concatenation along with the "num2str" function inside a for loop to dynamically read and store the "A" and "B" images. Below is a sample MATLAB code snippet demonstrating this:
A = cell(9,1);
for i = 1:9
A{i} = imread(['C:\Users\User\My Documents\MATLAB\1\new' num2str(i) '.png']);
end
For more information on the "cell" and "num2str" functions, please refer to the following MathWorks documentation links:
I hope this helps!
  1 commentaire
Walter Roberson
Walter Roberson le 12 Juin 2025
Modifié(e) : Walter Roberson le 12 Juin 2025
These days you can use
A{i} = imread("C:\Users\User\My Documents\MATLAB\1\new" + i + ".png");
but I suggest
projectdir = "C:\Users\User\My Documents\MATLAB";
%..
pd1 = fullfile(projectdir, "1");
%...
A{i} = imread( fullfile(pd1, "new" + i + ".png") );

Connectez-vous pour commenter.

Catégories

En savoir plus sur Convert Image Type 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!

Translated by