function median_fliter_Callback(hObject, eventdata, handles) % hObject handle to median_fliter (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) global T axes(handles.axes2); T=getimage; if isrgb(T)==1 msgbox('不适用于RGB图像!','警告','error'); else p=inputdlg({'模板矩阵维数:'},'输入',1,{'3'}); if isempty(p)==1 %errordlg('没有输入!','error'); return else p=str2num(p{1}); I=im2double(T); I=medfilt2(I, [p,p]);%中值均值 axes(handles.axes1); imshow(T); axes(handles.axes2); imshow(I); end end
时间: 2024-02-29 17:57:07 浏览: 123
raly.rar_NOISE_geometric median_max min filter_max-median_trimme
这是一个 MATLAB GUI 中的回调函数,用于对图像进行中值滤波,并在 GUI 界面上显示滤波前后的图像。
函数的基本流程如下:
1. 获取当前 GUI 界面中的图像 T,使用 `getimage` 函数获取。
2. 判断图像是否为 RGB 图像,如果是,弹出警告对话框,并返回;否则继续执行。
3. 弹出输入对话框,让用户输入模板矩阵的维数 p。
4. 如果用户没有输入,则直接返回;否则将用户输入转换为数值类型。
5. 将图像 T 转换为双精度型,并使用 `medfilt2` 函数对图像进行中值滤波,滤波模板的大小为 [p,p]。
6. 在 GUI 界面的 axes1 中显示原始图像 T,使用 `imshow` 函数。
7. 在 GUI 界面的 axes2 中显示滤波后的图像 I,使用 `imshow` 函数。
需要注意的是,该函数中使用了 `global` 关键字,表示 T 和 axes2 是全局变量,可以在其他函数中访问。函数中使用了 `isrgb` 函数判断图像是否为 RGB 图像。同时,函数中调用了 `medfilt2` 函数对图像进行中值滤波,并使用 `imshow` 函数在界面上显示原始图像和滤波后的图像。
阅读全文