Error al mostrar imagenes con imshow en 2 axes diferentes.
Publicado por Francsico Antonio (1 intervención) el 15/06/2018 02:40:31
Hola
El motivo de esta consulta es porque estoy desarrollando un proyecto para mi universidad y tengo un problema con respecto a el uso de la función imshow.
Básicamente mi proyecto es un menú con una opción para leer una imagen, aplicarle algún cambio o modificación y posteriormente mostrarlas en la interfaz gráfica, el problema es que tengo 2 "axes" con los nombres axes3 y axes4 y quiero que en el axes3 permanezca la imagen original pero en el axes4 se muestre la imagen actualizada; cada que usi la función imshow se actualizan los 2 axes.
El fragmento de mi código es el siguiente:
Les muestro el funcionamiento y el problema con capturas de pantalla y código:
https://www.dropbox.com/sh/69thpvit4halsip/AAAy9aS9JenB2aJOFoB9s93ka?dl=0
https://www.dropbox.com/s/g7pd7bc88tdodgx/Captura%20de%20pantalla%20%28127%29.png
https://www.dropbox.com/s/if29lx2ir8e3drb/Captura%20de%20pantalla%20%28128%29.png
https://www.dropbox.com/s/if29lx2ir8e3drb/Captura%20de%20pantalla%20%28128%29.png
https://www.dropbox.com/s/i9vcavtp8m0b7wu/Captura%20de%20pantalla%20%28130%29.png
El motivo de esta consulta es porque estoy desarrollando un proyecto para mi universidad y tengo un problema con respecto a el uso de la función imshow.
Básicamente mi proyecto es un menú con una opción para leer una imagen, aplicarle algún cambio o modificación y posteriormente mostrarlas en la interfaz gráfica, el problema es que tengo 2 "axes" con los nombres axes3 y axes4 y quiero que en el axes3 permanezca la imagen original pero en el axes4 se muestre la imagen actualizada; cada que usi la función imshow se actualizan los 2 axes.
El fragmento de mi código es el siguiente:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
% --------------------------------------------------------------------
function menu_abri_Callback(hObject, eventdata, handles)
% hObject handle to menu_abri (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% Abrir el explorador de archivos para escojer la imagen.
global datos_imagen;
global datos_mapa;
abrir_imagen
axes(handles.axes3)
imshow(datos_imagen, datos_mapa);
axis off;
disp(handles)
guidata(hObject, handles);
% --------------------------------------------------------------------
function menu_oper_Callback(hObject, eventdata, handles)
% hObject handle to menu_oper (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% --------------------------------------------------------------------
function borra_paleta_Callback(hObject, eventdata, handles)
% hObject handle to borra_paleta (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
global datos_imagen2;
global datos_mapa2;
global datos_imagen;
global datos_mapa;
global formato_global_imagen;
if strcmp(formato_global_imagen, 'indexed')
datos_mapa2 = rgb2gray(datos_mapa2);
l4 = axes(handles.axes4);
imshow(datos_imagen2, datos_mapa2);
axis off;
else
msgbox('Seleccione una imagen indexada para aplicar esta operación', 'Solución');
msgbox('La imagen que seleccionó no es una imagen indexada', 'Error');
end
function abrir_imagen()
global nombre_global_imagen;
global ruta_global_imagen;
global formato_global_imagen;
global datos_imagen;
global datos_mapa;
global datos_alpha;
global datos_imagen2;
global datos_mapa2;
global datos_alpha2;
% Leemos una imagen.
[nombre_archivo, ruta_archivo] = uigetfile('*.BMP;*.bmp;*.PNG;*.png;*.jpg;*.JPG;*.JPEG;*.jpeg;*.tiff;*.tif','Imagenes soportadas');
% Verificamos que se haya abierto una imagen.
if ~isequal(nombre_archivo,0)
% Concatenamos la ruta y el nombre de la imagen.
direccion_archivo = strcat(ruta_archivo, nombre_archivo);
% Obtenemos el formato de la imagen.
informacion_imagen = imfinfo(direccion_archivo);
% Almacenamos el nombre, ruta de la imagen y formato.
nombre_global_imagen = nombre_archivo;
ruta_global_imagen = ruta_archivo;
formato_global_imagen = informacion_imagen.ColorType;
% Leemos la imagen en una variable.
[datos_imagen, datos_mapa, datos_alpha] = imread(direccion_archivo);
datos_imagen2 = datos_imagen;
datos_mapa2 = datos_mapa;
datos_alpha2 = datos_alpha;
else
msgbox('No se abrió una imagen','Error');
end
Les muestro el funcionamiento y el problema con capturas de pantalla y código:
https://www.dropbox.com/sh/69thpvit4halsip/AAAy9aS9JenB2aJOFoB9s93ka?dl=0
https://www.dropbox.com/s/g7pd7bc88tdodgx/Captura%20de%20pantalla%20%28127%29.png
https://www.dropbox.com/s/if29lx2ir8e3drb/Captura%20de%20pantalla%20%28128%29.png
https://www.dropbox.com/s/if29lx2ir8e3drb/Captura%20de%20pantalla%20%28128%29.png
https://www.dropbox.com/s/i9vcavtp8m0b7wu/Captura%20de%20pantalla%20%28130%29.png
Valora esta pregunta
0