利用matlab GUI编程实现对不同格式的图片的打开和保存

时间:2022-07-14 01:16:15 阅读: 最新文章 文档下载
说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。
利用matlab GUI编程实现对不同格式的图片的打开和保存 建立的GUI如下:





在打开按钮的回调函数里,利用uigetfile()函数建立一个打开文件的对话框,利用imread()函数来打开图片,imshow()函数显示图像,具体代码如下: [filename,pathname]=uigetfile({'*.jpg';'*.bmp';'*.gif'},'选择图片'); if isequal(filename,0)

disp('Users Selected Canceled'); else

str=[pathname filename]; im = imread(str);

axes(handles.axes1);%axes1是坐标轴的标示 imshow(im); end;

运行之后的截图如下:






在保存按钮的回调函数中,利用了uiputfile()函数建立了一个保存文件的对话框,调用matlabimwrite()函数保存经过修改的图像,具体代码如下:

[filename,pathname]=uiputfile({'*.bmp';},'保存图片','Undefined.bmp'); if ~isequal(filename,0)

str = [pathname filename]; px=getframe(handles.axes1); %saveas(gcf,str,'bmp'); ta = getappdata(gcf,'Timg'); imwrite(px.cdata,str,'bmp'); close(gcf); else

disp('保存失败'); end;

其中的函数getframe()是为了获取坐标轴中的一帧图像,其返回的对象中有cdatacolormap两个成员。


(1) %读入图像

[X, map] = imread('3.bmp');

%fft变换,同时将零点移到中心 fcoef = fft2(X);

spectrum = fftshift(abs(fcoef));

%为了显示图像,需要对幅值做归一化处理 figure;

colormap(gray);

spectrum = 255*spectrum/max(spectrum(:)); %显示频谱,同时保存图像。

imshow(spectrum);

imwrite(255*spectrum, map, '31.bmp','bmp');


本文来源:https://www.wddqw.com/doc/402124f9f705cc17552709f3.html