matlab guide 将matlab处理过的图片保存

最近又用到matlab做GUI,之前学的全忘了,还好两年前留了大实验源码。
这次我来分析如何将matlab处理过的图片保存。

实验效果

经过灰度转换,图象被处理,并显示到另一个地方。
matlab guide 将matlab处理过的图片保存_第1张图片
点击保存
matlab guide 将matlab处理过的图片保存_第2张图片
图片被保存
matlab guide 将matlab处理过的图片保存_第3张图片

实验原理

查看保存的回调函数

function save_Callback(hObject, eventdata, handles)
[FileName,PathName] = uiputfile({'*.jpg','JPEG(*.jpg)';...
                                 '*.bmp','Bitmap(*.bmp)';...
                                 '*.gif','GIF(*.gif)';...
                                 '*.*',  'All Files (*.*)'},...
                                 'Save Picture','Untitled');
if FileName==0
    return;
else
    h=getframe(handles.axes2);
    imwrite(h.cdata,[PathName,FileName]);
end;

F = getframe 捕获显示在屏幕上的当前坐标区作为影片帧。F 是一个包含图像数据的结构体。getframe 按照屏幕上显示的大小捕获这些坐标区。它并不捕获坐标区轮廓外部的刻度标签或其他内容。
F 是一个结构体,其中包含的 cdata 字段中包含捕获的图像数据。

imwrite(A,filename) 将图像数据 A 写入 filename 指定的文件,并从扩展名推断出文件格式。imwrite 在当前文件夹中创建新文件。输出图像的位深度取决于 A 的数据类型和文件格式。

查看灰度转换的回调函数

function huidu_Callback(hObject, eventdata, handles)
file=get(handles.edit1,'string');
X=imread(file);
X=rgb2gray(X);%就是这个函数把图片变成灰度图
axes(handles.axes2)
imshow(X);
figure;
imhist(X);

imhist
查看图像像素强度的分布。调用 imhist 函数创建直方图。(请在调用 imhist 之前使用 figure 命令,这样直方图就不会覆盖当前图窗窗口中显示的图像 I。)请注意直方图表明图像的强度范围相当窄。该范围未能涵盖 [0, 255] 之间尽可能多的范围,并缺少能产生良好对比度的高值和低值。

你可能感兴趣的:(matlab)