图像增强的GUI设计
程序员文章站
2022-04-12 16:27:59
...
图像增强的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]);
上一篇: Caused by: java.lang.NoClassDefFoundError: org/mybatis/logging/LoggerFactory
下一篇: Caused by: java.lang.NoClassDefFoundError: [Lorg/hibernate/engine/FilterDefinition;解决方案
推荐阅读