Je débute en Matlab et j’ai un problème d’optimisation de code:
J’utilise ce code la :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
 
load('netHSV.mat');
ImageReel0  = imread('5.jpg');
Imagesortie=zeros(512,384);
ImageReel1=imresize(ImageReel0,[512 384],'nearest');
ImageReel=rgb2hsv(ImageReel1);
 
tic
for i=1:512%parcour row
for j=1:384%parcour col
    H=double(ImageReel(i,j,1)*1000);
    S=double(ImageReel(i,j,2)*1000);
    V=double(ImageReel(i,j,3)*1000);
    p=[H S V]';
    Imagesortie=(sim(net,p)>=0.6);
end
end
toc
 figure, imshow(Imagesortie)
Mais il me pose un problème de temps (il est trop gourmand en temps de calcul). J’ai essayé de proposer une solution pour m’optimiser du temps qui permet d’éviter les deux boucles et voila le code que j’utilise :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 
load('netHSV.mat'); 
ImageReel0  = imread('5.jpg');
Imagesortie=zeros(512,384);
%For each Image (Original and Masque):
ImageReel1=imresize(ImageReel0,[512,384],'nearest');
ImageReel=rgb2hsv(ImageReel1);
 tic;
    H=double(ImageReel(:,:,1)*1000);
    S=double(ImageReel(:,:,2)*1000);
    V=double(ImageReel(:,:,3)*1000);
    p=[H S V]';
    Imagesortie=(sim(net,p)>=0.6);
    figure, imshow(Imagesortie)
    toc
mais il me lance cet erreur :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
??? Error using ==> network.sim at 178
Inputs are incorrectly sized for network.
Matrix must have 3 rows.
Pouvez-vous m’aidez à corriger cet erreur ou bien à proposer une autre solution afin d'optimisez le code afin de gagner du temps ?