Para ello abrimos matlab y seleccionamos file->new->GUI y pulsamos ok
A continuación se nos abre una nueva ventana:
Con el botón indicado en la figura creamos dos ventanas una a la izquierda y otra a la derecha y posteriormente creamos dos botones tal y como se indica en la figura de abajo:
A continuación con el botón derecho del ratón, seleccionamos el button y pinchamos en property inspector.
Posteriormente en la parte de inferior de este menú cambiamos los campos String por Cargar Imagen y Tag por cargarimagen para el botón de la izquierda y para el de la derecha cambiamos los campos String por Procesar Imagen y Tag por procesarimagen.
Por último seleccionamos un botón con el botón derecho y entramos en viewcallbacks->callback, guardamos el fichero y se nos abrirá el editor de matlab.
En su interior buscamos la parte donde pone:
% --- Executes just before GuiBasica is made visible. function GuiBasica_OpeningFcn(hObject, eventdata, handles, varargin) % This function has no output args, see OutputFcn.
% hObject handle to figure
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% varargin command line arguments to GuiBasica (see VARARGIN)
% Choose default command line output for GuiBasica handles.output = hObject;
%Agregar variable para almacenar imágenes
handles.myImage = [];
% Update handles structure guidata(hObject, handles);
Y añadimos las lineas rojas del comando.
Posteriormente buscamos más abajo la parte:
% --- Executes on button press in CargarImagen. function cargarimagen_Callback(hObject, eventdata, handles)
% hObject handle to CargarImagen (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA) try
[filename,pathname] = uigetfile('*.pgm','Selecciona imagen para abrir');
if isequal(filename,0)
%no hace nada
else
handles.myImage = imread(fullfile(pathname, filename));
[X, myMap] = gray2ind(handles.myImage);
mImagen2 = ind2rgb(X,myMap);
image(mImagen2, 'Parent', handles.axes1);
colormap(gray);
end
guidata(hObject, handles);
catch
msgbox('Error')
end
Y de nuevo añadimos las sentencias que tenemos en rojo.
Por último buscamos la parte del botón procesarimagen:
% --- Executes on button press in ProcesarImagen. function ProcesarImagen_Callback(hObject, eventdata, handles)
% hObject handle to ProcesarImagen (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA) guidata(hObject, handles);
mImage = handles.myImage;
mImage2 = 255-mImage;
[X, myMap] = gray2ind(mImage2);
mImagen2 = ind2rgb(X,myMap);
image(mImagen2, 'Parent', handles.axes2);
Y añadimos las sentencias que están escritas de color rojo.
Con esto si utilizamos nuestra interfaz con una imagen.pgm (puesto que es así como lo he indicado en la función cargar imagen ) obtenemos el resultado que mostramos a continuación:
Amigo, a mí me marca error y seguí tus pasos al pie de la letra! :D quizá hay detalle porque le cambie .pgm a .jpg. Aunque la verdad lo dudo!
ResponderEliminarSi quieres mandame al gmail o por aqui comenta que error te da a ver si te puedo ayudar!
ResponderEliminarListo! Gracias bro! Pero pude arreglar el problema! ;) Buen día!
ResponderEliminarHola, como pudiste arreglar el error?
EliminarComo se arregla el error? Necesito ingresar una imagen jpg
EliminarTengan en cuenta que tienen que utilizar imágenes a color, no imágenes que ya estén en escala de grises. Realmente no me acuerdo de cual error hablaba porque fue hace un año y no tengo instalado el MATLAB para probar, pero deja leo el código y les mando algo.
Eliminar///////Botón cargar.. y la función
% --- Executes on button press in botoncargar.
function botoncargar_Callback(hObject, eventdata, handles)
% hObject handle to botoncargar (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';'*.bmp';'*.gif';'*.*'}, 'Elija su imagen a procesar');%Elejimos la imagen y los tipos
imagen = imread([pathname,filename]);%leemos la imagen
axes(handles.imagenAxe1);%Dibujamos la imagen en el axe imagenAxe1-
imshow(imagen);%Mostramos la imagen
handles.imagen = imagen;
guidata(hObject, handles);
///Boton procesar y su funcion
% --- botonProcesar
function botonProcesar_Callback(hObject, eventdata, handles)
% hObject handle to botonProcesar (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
imgGray = rgb2gray(imagen);%la variable donde guardamos la imagen cargada se llama imagen
bw = im2bw(img_crop,graythresh(imgGray));
BMejor=bwareaopen(bw,30);%Encuentra pixeles desconectados y los elimina
axes(handles.imagenbinaria);
imshow(BMejor);
Bro, necesito de tu ayuda ya que me marcas error al ingresar el código, espero que me puedas auxiliar, ya te mande un correo
ResponderEliminar