MATLAB中GUI在图像处理应用中的设计(包括各种算法)(6)

2020-04-21 00:41

实现程序段如下:

function uipanel4_SelectionChangeFcn(hObject, eventdata, handles) % hObject handle to uipanel4 (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) global T

str=get(hObject,'string'); axes(handles.axes2); switch str

case '椒盐噪声' T=getimage;

prompt={'数日椒盐噪声参数1:'}; defans={'0.02'};

p=inputdlg(prompt,'input',1,defans); p1=str2num(p{1});

f=imnoise(handles.img,'salt & pepper',p1); imshow(f); handles.img=f;

guidata(hObject,handles); case '?高斯噪声' T=getimage;

prompt={'输入高斯噪声1:','输入高斯噪声2'}; defans={'0','0.02'};

21 / 52

p=inputdlg(prompt,'input',1,defans); p1=str2num(p{1}); p2=str2num(p{2});

f=imnoise(handles.img,'gaussian',p1,p2); imshow(f); handles.img=f;

guidata(hObject,handles); case '乘性噪声' T=getimage;

prompt={'输入乘性噪声1:'}; defans={'0.02'};

p=inputdlg(prompt,'input',1,defans); p1=str2num(p{1});

f=imnoise(handles.img,'speckle',p1); imshow(f); handles.img=f;

guidata(hObject,handles); end

(2)滤除噪声(椒盐噪声)。 滤波前

中值滤波后

22 / 52

线性滤波后

自适应滤波后

实现程序段如下:

function uipanel5_SelectionChangeFcn(hObject, eventdata, handles) %图像滤波

% hObject handle to uipanel5 (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) global T

str=get(hObject,'string'); axes(handles.axes2);

23 / 52

switch str

case '中值滤波' T=getimage;

k=medfilt2(handles.img); imshow(k); handles.img=k;

guidata(hObject,handles); case '线性滤波' T=getimage;

h=[1 1 1;1 1 1;1 1 1]; H=h/9;

i=double(handles.img); k=convn(i,h); imshow(k,[]); handles.img=k;

guidata(hObject,handles); case '自适应滤波' T=getimage;

k=wiener2(handles.img,[5,5]); imshow(k); handles.img=k;

guidata(hObject,handles); end

低通滤波器滤波后

24 / 52

高通滤波器滤波后

实现程序如下:

% --- Executes on button press in pushbutton14.

function pushbutton14_Callback(hObject, eventdata, handles) % hObject handle to pushbutton14 (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)

axes(handles.axes2); y1=handles.img;

f=double(y1); % 数据类型转换,matlab不支持图像的无符号整型的计算 g=fft2(f); % 傅里叶变换 g=fftshift(g); % 转换数据矩阵 [M,N]=size(g);

nn=2; %二阶巴特沃斯低通滤波器 d0=50; %截止频率50 m=fix(M/2); n=fix(N/2); for i=1:M for j=1:N

d=sqrt((i-m)^2+(j-n)^2);

h=1/(1+0.414*(d/d0)^(2*nn)); % 计算低通滤波器传递函数 result(i,j)=h*g(i,j); end

25 / 52


MATLAB中GUI在图像处理应用中的设计(包括各种算法)(6).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:2016年高中生单招信息技术重点考点

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: