How can i loop this code?

4 次查看(过去 30 天)
Hey guys so i have the next code which reads an image then crops it and then for the same crop diensions crops 15 mor images and the for each image does some fft staff the same for every image and in the end finds the slopes of the polyfits and plots them in one diagramme.How can i make this do all of them faster?
clc;
clear all;
img = imread('a=0.3.1.jpg');
figure;
imshow(img);
h_rect = imrect();
% Rectangle position is given as [xmin, ymin, width, height]
pos_rect = h_rect.getPosition();
% Round off so the coordinates can be used as indices
pos_rect = round(pos_rect);
% Select part of the image
img_cropped = img(pos_rect(2) + (0:pos_rect(4)), pos_rect(1) + (0:pos_rect(3)));
img = img_cropped
img_rot=imrotate(img,32.06);
figure, imshow(img_rot)
%figure,contourf(prof_img_rot11);
fft_prof11 = mean(abs(fft(prof_img_rot11)'));
img = imread('a=0.3.2.jpg');
img = imcrop(img,pos_rect);
imshow(img)
img_rot=imrotate(img,32.06);
figure, imshow(img_rot)
%figure,contourf(prof_img_rot12);
fft_prof12 = mean(abs(fft(prof_img_rot12)'));
img = imread('a=0.3.3.jpg');
img = imcrop(img,pos_rect);
imshow(img)
img_rot=imrotate(img,32.06);
figure, imshow(img_rot)
%contourf(prof_img_rot13);
fft_prof13 = mean(abs(fft(prof_img_rot13)'));
img = imread('a=0.3.4.jpg');
img = imcrop(img,pos_rect);
imshow(img)
img_rot=imrotate(img,32.06);
figure, imshow(img_rot)
%figure,contourf(prof_img_rot14);
fft_prof14 = mean(abs(fft(prof_img_rot14)'));
img = imread('a=0.5.1.jpg');
img = imcrop(img,pos_rect);
imshow(img)
img_rot=imrotate(img,32.06);
figure, imshow(img_rot)
%figure,contourf(prof_img_rot21);
fft_prof21 = mean(abs(fft(prof_img_rot21)'));
img = imread('a=0.5.2.jpg');
img = imcrop(img,pos_rect);
imshow(img)
img_rot=imrotate(img,32.06);
figure, imshow(img_rot)
%figure,contourf(prof_img_rot22);
fft_prof22 = mean(abs(fft(prof_img_rot22)'));
img = imread('a=0.5.3.jpg');
img = imcrop(img,pos_rect);
imshow(img)
img_rot=imrotate(img,32.06);
figure, imshow(img_rot)
%contourf(prof_img_rot23);
fft_prof23 = mean(abs(fft(prof_img_rot23)'));
x = 1:127;
x1 = log(x);
y11 = log(fft_prof11(2:128))
y12 = log(fft_prof12(2:128))
y13 = log(fft_prof13(2:128))
y14 = log(fft_prof14(2:128))
y21 = log(fft_prof21(2:128))
y22 = log(fft_prof22(2:128))
y23 = log(fft_prof23(2:128))
y24 = log(fft_prof24(2:128))
y31 = log(fft_prof31(2:128))
y32 = log(fft_prof32(2:128))
y33 = log(fft_prof33(2:128))
y34 = log(fft_prof34(2:128))
close all;

采纳的回答

Jan
Jan 2021-4-26
编辑:Jan 2021-4-26
Faster: Omit the clear all. It removes all loaded functions from the memory. Reloading and parsing them from the slow disk wastes time without any benefit.
  3 个评论
george korris
george korris 2021-4-27
hello Jan i read the very usefull link you attached and have a question what if i have a folder with thousands of images with similar names and i only want to read the images with lets say names c=2.jpg , c2=2.jpg, c3=2.jpg and so on how can i do that ?
george korris
george korris 2021-4-28
i figured it outt sorry to bother you Jan

请先登录,再进行评论。

更多回答(0 个)

Community Treasure Hunt

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

Start Hunting!

Translated by