J'ai une forme avec 3axes et 2 buttons(de type pushbutton):

pushbutton1- pour m'afficher les photos du directoire images(j'ai 2 photos)
pushbutton2- pour la selection d'une image et l'ajout automatiquement dans le dossier de moi images dans mon cas(command uiputfile) -comment faire cela dans le pushbutton2_callback.(c'est ici le probleme)


Donc j'ai 3 axes parce que dans le dossier j'ai 2 photos mais je selectionne un fichier jpg dans le pushbutton2_callback et quand j'appuie save il est sauve dans mon dosier l'image selectione avec uiputfile automatiquement.

Et quand je presse le pushbutton1_callback il m'affiche dans les 3 axes(les 2 vieux photos du directoire et la photo que j'ai ajoute dans le dossier dans le pushbutton2_callback). C'est pour cela que j'ai 3 axes sur ma forme.

Pushbutton1_callback(liste en axes de la forme les photos qui se trouvent dans le dossier -ca marche caroline m'a aide).


Si vous pouvez nettoyer un peu mon pushbutton2_callback c'est ca le probleme j'ai essaye avec uiputfile:

J'attache ici les sources:


Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
 
function pushbutton1_Callback(hObject, eventdata, handles)
rep = 'C:\MATLAB71\work\Images';
img_list = dir(fullfile(rep,'*.jpg'));
for k=1:length(img_list)
    % Chargement de la kième image
 
    img = imread(fullfile(rep, img_list(k).name));
    %l'afficher dans axesk de la deuxieme forme (utilisation champs
    %dynamique)
    image(img,'Parent',handles.(['axes',num2str(k)]));
 
end

Ce callback d'ajout quand je presse save ajouter l'image selectionne dans mon repertoire(C:\MATLAB71\work\Images) ne marche. J'essaye avec uiputfile dans le deuxieme callback c'est ici le probleme:


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
 
function pushbutton2_Callback(hObject, eventdata, handles)
pathname='C:\Matlab71\work\Images';
[filename, pathname] = uiputfile(...
{'*.jpg' ;'*.bmp ';'*.tif';'*.gif'},...
'Save as'); %fenetre de dialogue pour sauver une image selectee dans le directoire specifie par variable pathname
 
f=fullfile(pathname,filename);
imwrite(p,f);%sauver l'image selectee dans le dossier specifie par pathname
%p,f deux variables pour le pathname et filename
 
if exist(fullfile(pathname,filename),'file') %si l'image jpg existe dans le dossier C:\Matlab71\work\Images 
%dans ce cas afficher une error dialog avec message corespondant
errordlg('Le fichier existe deja dans le directoire!','Erreur!');
end