Está en la página 1de 4

Coleccin de codigos matlab utiles Matlab : >>I = imread ('C:\ camino\poumon infect.

jpg') ; % I se transforma en una matriz de dimensin correcta conteniendo las informaciones de % la imagen; si se olvida el ; despus de imread uno tiene derecho al desfile de los % valores de la matriz! >>whos; % permite tener un conjunto de informaciones sobre la imagen, y saber su dimensin % NxM, uint8 para enteros sin asignatura de 0 255 etc.

Matlab : J = rgb2gray(I) ; %convierte la imagen RGB en %niveles de gris haciendo %(R+G+B)/3 Matlab imagen RGB matriz NxMx3 : capa roja I (x,y,1), capa verde I(x,y,2), capa azul I(x,y,3) >>a=imread('escalier1.jpg'); >> b=im2uint8(a);figure;imshow(b); (conversion 8 bits) Imagen de gris : >> c=rgb2gray(b) ; figure ; imshow(c); >> I = imread ('escalier1.jpg'); >> imshow (I); >> improfile; >> I=imread('escalier1.jpg'); >> imtool(I); (ventana tool pixel region)

Programa para captura de video e imgenes. El cdigo en la seccin de inicializacin del programa es el siguiente:
funct ion videoGUI_OpeningFcn(hObject , eventdata, handles, vararg in) handles.output = hObject; % Update handles structure handles. rgb = [ ] ; handles.noback = []; guidata(hObject, handles); % This sets up the video camera and starts the preview % Only do this when it's invisible i f strcmp(get(hObject , i s i b l ) ,'off') 'V e' try handles.vidobj = videoinput('winvideo'); % Update handles structure start(handles.vidobj); guidata(hObject, handles); vidRes = get(handles.vidobj, 'VideoResolution');

nBands = get(handles.vidobj, 'NumberOfBands') ; hImage = image(zeros(v idRes(2) , vidRes(1) , nBands), ,. . . 'Parent ' handles.video_cam); preview(handles.vidobj,hImage); catch msgbox('NO HAY CMARA CONECTADA. Cargando Prof i l e . j pg . ' ) hImage = image(imread('pro f i l e . j pg ' ), 'Parent,handles.video_cam); ' end end

La sentencia strcmp compara dos strings. Si son iguales retorna 1 y caso contrario, retorna 0. El cdigo entre try y catch establece la conexin de video e inicia la reproduccin. En caso de producirse un error en estas lneas, se ejecuta el cdigo entre catch y end, que coloca una imagen (profile.jpg) en el axes de captura de foto. El cdigo para capturar la imagen es:
funct ion captura_Callback(hObject, eventdata, handles) try handles.rgb = getsnapshot(handles.vidobj); catch handles.rgb = imread('pro f i l e . j pg ' ); end % Update handles structure guidata(hObject, handles); image(handles.rgb,'Parent,handles.fotografia); ' axes(handles.fotografia) axis off

La funcin getsnapshot captura la imagen de la cmara de video. En caso de que la cmara se haya desconectado, se carga la imagen profile.jpg. Obtenida la imagen, finalmente se la asigna al axes etiquetado como fotografa con la funcin image. El cdigo para guardar la imagene es:
funct ion guardar_Callback(hObject, eventdata, handles) rgb = getimage(handles.fotografia); if isempty(rgb), return end , %guardar como archivo fileTypes = supportedImageTypes; % Funcin auxi l i a r . [f,p] = uiputfile(fileTypes); if f==0, return, end fName = fullfile(p,f); imwrite(rgb,fName); msgbox([' Imagen guardada en fName]); ' %Cambio al directorio donde se ha guardado la imagen (prescindible) if ~strcmp(p,pwd) cd(p); end function fileTypes = supportedImageTypes % Funcin auxiliar: formatos de imgenes. fileTypes = {' * . j pg 'J PEG (* . j pg ) ' ,' ;'*.tif','TIFF (*.tif)';... '*.bmp','Bitmap (*.bmp)';'*.*','All files (*.*)'};

Fig. 38. Programa para captura de video e imgenes. El cdigo en la seccin de inicializacin del programa es el siguiente:
funct ion videoGUI_OpeningFcn(hObject , eventdata, handles, vararg in) handles.output = hObject; % Update handles structure handles.rgb = []; handles.noback = []; guidata(hObject, handles); % This sets up the video camera and starts the preview % Only do this when it's invisible i f strcmp(get(hObject , i s i b l ) ,'off') 'V e' try handles.vidobj = videoinput('winvideo'); % Update handles structure start(handles.vidobj); guidata(hObject, handles); vidRes = get(handles.vidobj, 'VideoResolution'); nBands = get(handles.vidobj, 'NumberOfBands'); hImage = image(zeros(vidRes(2), vidRes(1), nBands), 'Parent',. . . handles.video_cam); preview(handles.vidobj,hImage); catch msgbox('NO HAY CMARA CONECTADA. Cargando Profile.jpg.') hImage = image(imread('profile.jpg'), 'Parent',handles.video_cam); end end

La sentencia strcmp compara dos strings. Si son iguales retorna 1 y caso contrario, retorna 0. El cdigo entre try y catch establece la conexin de video e inicia la reproduccin. En caso de producirse un error en estas lneas, se ejecuta el cdigo entre catch y end, que coloca una imagen (profile.jpg) en el axes de captura de foto. El cdigo para capturar la imagen es:
funct ion captura_Callback(hObject, eventdata, handles) try handles.rgb = getsnapshot(handles.vidobj); catch handles.rgb = imread('profile.jpg'); end % Update handles structure guidata(hObject, handles); image(handles.rgb,'Parent',handles.fotografia); axes(handles.fotografia) axis off

La funcin getsnapshot captura la imagen de la cmara de video. En caso de

que la cmara se haya desconectado, se carga la imagen profile.jpg. Obtenida la imagen, finalmente se la asigna al axes etiquetado como fotografa con la funcin image. El cdigo para guardar la imagene es:
funct ion guardar_Cal lback(hObject , eventdata, handles) rgb = getimage(handles.fotografia); if i sempty(rgb) return end , , %guardar como archivo fileTypes = supportedImageTypes; % Funcin auxi l i a r . [f,p] = uiputfile(fileTypes); if f==0, return, end fName = fullfile(p,f); imwrite(rgb,fName); msgbox([' Imagen guardada en fName]); ' %Cambio al directorio donde se ha guardado la imagen (prescindible) if ~strcmp(p,pwd) cd(p); end function fileTypes = supportedImageTypes % Funcin auxiliar: formatos de imgenes. fileTypes = {' * . j pg 'J PEG (* . j pg ) ' ,' ;'*.tif','TIFF (*.tif)';... '*.bmp','Bitmap (*.bmp)';'*.*','All files (*.*)'};

También podría gustarte