% 获取App Data或Shared Data中的im1 im1 = getappdata(app.UIFigure, 'img1'); % imshow(im1,'Parent',app.UIAxes_5); % hold(app.UIAxes_5,'on') im2 = getappdata(app.UIFigure, 'img2'); %相jian idif=uint8(double(im1)-double(im2)); imshow(idif,'Parent',app.UIAxes); idif=uint8(40*idif) imshow(idif,'Parent',app.UIAxes2); egray=im2gray(idif); %二值化 % bw=imbinatize(egray) %去噪声 % se = strel('disk',5); % obj1 = imopen(bw,se); imshow(egray,'Parent',app.UIAxes_5);
时间: 2024-04-21 22:30:07 浏览: 104
这段代码的作用是获取App Data或Shared Data中的两张图片,将它们相减并显示在UIAxes中,并对相减结果进行二值化和去噪声处理。具体来说,代码中使用`getappdata()`函数获取了两张图片`img1`和`img2`,然后用这两张图片的差值计算出`idif`,并将其显示在`UIAxes`上。接着,将`idif`乘以40并将其显示在`UIAxes2`上,然后将其转换为灰度图像`egray`。随后,代码中注释掉了二值化和去噪声处理的代码,因此无法确定这部分代码的具体实现方式。最后,将`egray`显示在`UIAxes_5`上。
相关问题
修改 % Button pushed function: Button function ButtonPushed(app, event) %%打开图像 im1=uigetfile('*.jpg'); imshow(im1,'Parent',app.UIAxes_2); hold(app.UIAxes_2,'on') end % Button pushed function: Button_2 function Button_2Pushed(app, event) % im2=uigetfile('*.jpg'); imshow(im1'Parent',app.UIAxes_4); hold(app.UIAxes_4,'on') 使得第一个回调函数中的im1可以传输给第二个回调函数
要实现第一个回调函数中的im1传递给第二个回调函数,可以使用MATLAB App Designer中的App Data或Shared Data功能。
具体而言,可以在第一个回调函数中使用setappdata或setSharedData函数将im1存储到App Data或Shared Data中。然后,在第二个回调函数中使用getappdata或getSharedData函数来获取这个im1。
示例代码如下:
```
% Button pushed function: Button
function ButtonPushed(app, event)
% 打开图像
im1 = uigetfile('*.jpg');
imshow(im1, 'Parent', app.UIAxes_2);
hold(app.UIAxes_2, 'on');
% 存储im1到App Data或Shared Data中
setappdata(app.UIFigure, 'mydata', im1);
% 或者使用setSharedData(app, 'mydata', im1);
end
% Button pushed function: Button_2
function Button_2Pushed(app, event)
% 获取App Data或Shared Data中的im1
im1 = getappdata(app.UIFigure, 'mydata');
% 或者使用im1 = getSharedData(app, 'mydata');
% 显示im1到UIAxes_4上
imshow(im1, 'Parent', app.UIAxes_4);
hold(app.UIAxes_4, 'on');
end
```
需要注意的是,在使用App Data或Shared Data时,需要确保数据的名称在不同的回调函数中保持一致。此外,还需要注意避免多个回调函数同时修改同一个数据,可能会引发数据竞争问题。
阅读全文