好的,我可以帮你解决这个问题。下面是一个简单的 MATLAB GUI 代码,可以给图像添加高斯噪声,同时可以调整噪声的强度。你可以根据需要进行修改和优化。
```matlab
function add_noise_gui()
% 创建 GUI 窗口
fig = figure('Name', 'Add Gaussian Noise', 'NumberTitle', 'off', ...
'Position', [100, 100, 400, 200], 'MenuBar', 'none', ...
'ToolBar', 'none', 'Resize', 'off', 'Visible', 'on');
% 创建图像显示区域
img_ax = axes('Parent', fig, 'Units', 'pixels', ...
'Position', [50, 50, 200, 200]);
% 加载示例图像
img = imread('peppers.png');
imshow(img, 'Parent', img_ax);
% 创建滑动条和文本框
slider_txt = uicontrol('Parent', fig, 'Style', 'text', ...
'Position', [260, 160, 120, 20], 'String', 'Noise Intensity:');
slider = uicontrol('Parent', fig, 'Style', 'slider', ...
'Position', [260, 120, 120, 20], 'Min', 0, 'Max', 1, 'Value', 0, ...
'Callback', @slider_callback);
intensity_txt = uicontrol('Parent', fig, 'Style', 'edit', ...
'Position', [260, 90, 120, 20], 'String', '0');
% 回调函数,处理滑动条变化
function slider_callback(hObject, eventdata)
% 读取滑动条的值
intensity = get(hObject, 'Value');
set(intensity_txt, 'String', num2str(intensity));
% 添加高斯噪声
noisy_img = imnoise(img, 'gaussian', 0, intensity);
imshow(noisy_img, 'Parent', img_ax);
end
end
```
这个 GUI 窗口包含一个图像显示区域、一个滑动条和一个文本框。当滑动条的值发生变化时,会调用回调函数 `slider_callback`,在图像上添加高斯噪声,并在图像显示区域中显示添加噪声后的图像。噪声的强度可以通过滑动条进行调整。
你可以将上面的代码保存到一个名为 `add_noise_gui.m` 的文件中,并在 MATLAB 中运行。然后,你可以在 GUI 窗口中加载任意一张图像,通过滑动条调整噪声的强度,最后得到添加了高斯噪声的图像。