图像增强的GUI设计

图像增强的GUI设计

读入图像

global im
[filename,pathname]=uigetfile({'*.jpg';'*.bmp';'*.tif'},'choose a picture','C:\Users\洋仔\Desktop\pic')   %指定打开的文件夹位置
str=[pathname,filename];

im=imread(str);
axes(handles.axes1);
imshow(im);

加入噪声–椒盐

global im im_noise
im_noise=imnoise(im,'salt & pepper',0.05);%加入椒盐噪声
axes(handles.axes2);
imshow(im_noise)

中值滤波

global im im_noise im_filter
n=size(size(im_noise));
if n(1,2)==2    %灰度图像
    im_filter=medfilt2(im_noise,[3 2]); 
else            %RGB图像的处理
    im_filter1=medfilt2(im_noise(:,:,1),[3 2]);
    im_filter2=medfilt2(im_noise(:,:,2),[3 2]);
    im_filter3=medfilt2(im_noise(:,:,3),[3 2]);
    im_filter=cat(3,im_filter1,im_filter2,im_filter3);
end
axes(handles.axes2);
imshow(im_filter)

说明:medfilt2语法
在matlab中,medfilt2函数用于执行二维中值滤波,使用方法如下:
B = medfilt2(A, [m n])
B = medfilt2(A)
B = medfilt2(A, ’indexed’, ...)
其中B是中值滤波后的图象矩阵,A是原图矩阵,[m n]表示邻域块的大小,默认值为[3 3]。

中值滤波是图像处理中的一个常用步骤,它对于斑点噪声(en:speckle noise)和椒盐噪声(en:salt-and-pepper noise)来说尤其有用。保存边缘的特性使它在不希望出现边缘模糊的场合也很有用。当要求在降低噪声的同时要求保持边缘,中值滤波较卷积有更好的效果。

保存图像

利用uigetdir返回图像的位置,imwrite可以将图片写入图形文件中

global im im_noise im_filter
[Path] = uigetdir('','保存增强后的图像'); % 修正后的图像路劲
imwrite(uint8(im_filter),strcat(Path,'\','pic_correct.bmp'),'bmp');

或者也可以使用uiputfile和imwrite

[FileName,PathName] = uiputfile({'*.jpg','JPEG(*.jpg)';...
                             '*.bmp','Bitmap(*.bmp)';...
                             '*.gif','GIF(*.gif)';...
                             '*.*',  'All Files (*.*)'},...
                             'Save Picture','Untitled');
h=getframe(handles.axes2);
imwrite(h.cdata,[PathName,FileName]);
  • 3
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值