0

所以我最近创建了一个 GUI,旨在进行一些基本的图像处理。它用

[filename, pathname] = ...
     uigetfile({'*.m';'*.mdl';'*.mat';'*.*'},'File Selector');

set(handles.Textbox1, 'string', fullfile(pathname,filename));

获取文件名,然后将其放在 GUI 上的文本框中以供其他功能使用。我有一个噪点功能,旨在为输入的图片添加噪点,但我似乎无法弄清楚如何让 GUI 将新创建的噪点照片用于其余过滤器。

让我稍微解释一下,我的 gui 上有 6 个按钮,每个按钮都设计用于在图片上执行一些功能,例如均值滤波/拉普拉希滤波等,还有一个添加噪声的按钮。单击按钮后,会弹出一个图形,在图像上具有所需的效果。我想做的是在单击“添加噪声”按钮后,让 GUI 使用新图片进行任何进一步的图像处理。例如,如果我现在单击添加噪声,然后表示过滤,GUI 会输出两张图像,一张有噪声,一张表示过滤。我的目标是让 GUI 改为对充满噪声的图片执行均值滤波。

我试图将以下内容添加到我编写的“Addnoise”函数中,但没有任何反应。

saveas(myimage, 'photonoise.raw');

保存图像后,我需要将新图像的字符串传回原始程序,以便它可以进行处理,但不确定如何保存和打开字符串。我希望在单击 addnoise 按钮​​后,只需替换旧字符串,而无需重新打开文件浏览器并选择新图像,所以我不想使用

[filename, pathname] = ...
     uigetfile({'*.m';'*.mdl';'*.mat';'*.*'},'File Selector');

set(handles.Textbox1, 'string', fullfile(pathname,filename));

再次。非常感谢您的帮助,谢谢。

4

1 回答 1

2

使用 Handles 结构对您有利,并将图像数据保存到您的句柄中。

handles.currentImage=imread(get(handles.textbox1,'string')); %This reads in an image

handles.currentImage=yourOperation(handles.currentImage) % Modify your image and save back

figure(1) %This keeps everything popping up in 1 figure, 
%if you dont want that, remove the "(1)"

imshow(handles.currentImage) %show current image
于 2013-06-19T13:45:38.370 回答