je voudrais mettre en pratique sur la conception de l'interface graphique dans Matlab, cette interface a deux fonctions pour sélectionner -one de l'image et la seconde pour le filtrage, la structure générale de cette interface graphique est très simple
créer l'interface graphique pour la sélection et le filtrage de l'image
et voici deux qui code -one sélectionner l'image après avoir appuyé sur sur l'image et sélectionnez seconde qui filtre l'image en utilisant un filtre simple moyenne après avoir cliqué sur sur l'image du filtre
function select_image_Callback(hObject, eventdata, handles)
% hObject handle to select_image (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
[filename, pathname] = uigetfile({'*.jpg';'*.png'},'File select');
image=strcat(pathname,filename);
axes(handles.axes1);
imshow(image);
et pour filtrer
function filter_image_Callback(hObject, eventdata, handles)
% hObject handle to filter_image (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
h = ones(5,5)/25;
Filtered_image = imfilter(image,h);
axes(handles.axes2);
imshow(Filtered_image);
mais quand je lance le code, je choisis simplement ce fichier
je me suis erreur suivant
Error using imfilter
Expected input number 1, A, to be one of these types:
numeric, logical
Instead its type was matlab.graphics.primitive.Image.
Error in imfilter>parse_inputs (line 186)
validateattributes(a,{'numeric' 'logical'},{'nonsparse'},mfilename,'A',1);
Error in imfilter (line 118)
[a, h, boundary, sameSize, convMode] = parse_inputs(varargin{:});
Error in filter_image_filter_image_Callback (line 92)
Filtered_image = imfilter(image,h);
Error in gui_mainfcn (line 95)
feval(varargin{:});
Error in filter_image (line 42)
gui_mainfcn(gui_State, varargin{:});
Error in @(hObject,eventdata)filter_image('filter_image_Callback',hObject,eventdata,guidata(hObject))
Error while evaluating UIControl Callback
pourquoi arrive cela? Merci d'avance
'de image' est le nom de la fonction dans Matlab afin que vous puissiez avoir un conflit depuis que vous avez nommé une image variable. Essayez de changer le nom de cette variable –
il y a un problème, de la deuxième fonction je ne peux pas accéder à la variable dans la première fonction, je veux dire que la portée variable est violée, alors devrais-je le déclarer global? –
j'ai résolu et je posterai mon code –