Bonjour,

Je dois créer un GUI très simple sous MATLAB 2007 permettant à un utilisateur de récupérer des données sur une courbe à partir d'une simple image de cette courbe. Seulement mes connaissances en MATLAB ne sont pas mirobolantes...

Le code ressemble pour le moment à ça, j'en suis au tout début, j'imagine qu'il est pourtant perfectible, n'hésitez pas à me donner des idées.

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
20
function fichier_Callback(hObject, eventdata, handles)
%[FileName,PathName] = uigetfile({'*.gif';'*.tif';'*.jpg'},'Sélectionnez le fichier image d''extension .gif, .tif ou .jpg à utiliser');
set(handles.axes,'visible','on')
[im,clmap] = imread('Essaicourbe.tif');
image(im);
colormap(gray);
 
% hObject    handle to fichier (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
 
 
% --- Executes on button press in rotation.
function rotation_Callback(hObject, eventdata, handles)
set(handles.axes,'visible','on')
[im,clmap] = imread('Essaicourbe.tif');
image(im);
colormap(gray);
im=rot90(im);
image(im);
La première partie a pour but de charger un fichier image pour ensuite être utilisé. Première difficulté rencontrée, après avoir récupéré le lien de l'image il m'est impossible de l'utiliser pour la lire via imread car si je veux écrire : [im,clmap] = imread('FileName'); alors le fichier à utiliser est compris comme étant FileName et non le contenu de la variable FileName. Je cherche à savoir pourquoi et comment y remédier.

A la place j'utilise directement une image test 'Essaicourbe.tif' et dans la deuxième partie je cherche à lui appliquer une rotation si nécessaire. Seulement le fichier image précédemment enregistré sous la variable 'im' n'existe plus quand je veux l'utiliser à partir d'un autre function object_callback comme c'est le cas dans rotation alors que la variable était créée sous fichier. J'imagine que cela est dû à la localité de la variable et je cherche à rendre cette variable accessible plus tard dans d'autres fonctions, comment faire ? Seule solution pour le moment, appliquer de nouveau l'ensemble des manipulations faites précédemment, mais cela ne marche que si on n'a besoin de faire qu'une rotation...Pas très pratique.

Merci d'avance à ceux qui m'aideront.