poster
2019-12-10, 16:49
我分配了一个使用MATLAB GUIDE创建GUI的任务,并且在显示编辑后的图片时遇到问题。我需要具有用于编辑图片的按钮(例如,删除红色,蓝色,绿色组件并旋转)并显示编辑后的图片。我正在使用imshow显示编辑后的图片,但是它将显示在新窗口中并关闭我正在运行的GUI。有人可以帮忙吗?
我一直在研究此问题,并尝试了多种解决问题的方法,但均无济于事。但是,我正在使用MATLAB 7.0.1,而7.7.0可能对此问题进行了更新。
回答:
首次使用imshow (https://www.mathworks.com/help/images/ref/imshow.html)绘制图像时,让它返回其创建的图像对象的句柄:
A = (the initial matrix of image data); hImage = imshow(A); 然后,要用新数据更新映像,请尝试以下操作,而不是再次调用imshow :
B = (modification of the original image matrix A); set(hImage, 'CData', B); 使用set (https://www.mathworks.com/help/matlab/ref/set.html)命令将更改您已经创建的图像对象(可以在此处 (https://www.mathworks.com/help/matlab/ref/image-properties.html)找到图像对象属性的列表)。
另外,您也可以在调用imshow添加其他参数,以告诉它要在哪个轴对象上绘制图像:
hAxes = (the handle to an axes object); imshow(A, 'Parent', hAxes); 编辑:
要解决在函数之间共享GUI数据的其他问题,您应该在此处 (https://www.mathworks.com/help/matlab/creating_guis/share-data-among-callbacks.html)查看MATLAB文档。如所指出的有,有几个不同的方式来传递参与的GUI不同的功能之间的数据:嵌套函数(在SO提到这里 (https://stackoverflow.com/q/272511/52738) ),使用对象的“的UserData”属性(在SO提到这里 (https://stackoverflow.com/q/704391/52738) ),或者使用功能setappdata (https://www.mathworks.com/help/matlab/ref/setappdata.html) / getappdata (https://www.mathworks.com/help/matlab/ref/getappdata.html)或guidata (https://www.mathworks.com/help/matlab/ref/guidata.html) 。 guidata选项可能最适合与GUIDE中制作的GUI一起使用。
更多&回答... (https://stackoverflow.com/questions/768510)
我一直在研究此问题,并尝试了多种解决问题的方法,但均无济于事。但是,我正在使用MATLAB 7.0.1,而7.7.0可能对此问题进行了更新。
回答:
首次使用imshow (https://www.mathworks.com/help/images/ref/imshow.html)绘制图像时,让它返回其创建的图像对象的句柄:
A = (the initial matrix of image data); hImage = imshow(A); 然后,要用新数据更新映像,请尝试以下操作,而不是再次调用imshow :
B = (modification of the original image matrix A); set(hImage, 'CData', B); 使用set (https://www.mathworks.com/help/matlab/ref/set.html)命令将更改您已经创建的图像对象(可以在此处 (https://www.mathworks.com/help/matlab/ref/image-properties.html)找到图像对象属性的列表)。
另外,您也可以在调用imshow添加其他参数,以告诉它要在哪个轴对象上绘制图像:
hAxes = (the handle to an axes object); imshow(A, 'Parent', hAxes); 编辑:
要解决在函数之间共享GUI数据的其他问题,您应该在此处 (https://www.mathworks.com/help/matlab/creating_guis/share-data-among-callbacks.html)查看MATLAB文档。如所指出的有,有几个不同的方式来传递参与的GUI不同的功能之间的数据:嵌套函数(在SO提到这里 (https://stackoverflow.com/q/272511/52738) ),使用对象的“的UserData”属性(在SO提到这里 (https://stackoverflow.com/q/704391/52738) ),或者使用功能setappdata (https://www.mathworks.com/help/matlab/ref/setappdata.html) / getappdata (https://www.mathworks.com/help/matlab/ref/getappdata.html)或guidata (https://www.mathworks.com/help/matlab/ref/guidata.html) 。 guidata选项可能最适合与GUIDE中制作的GUI一起使用。
更多&回答... (https://stackoverflow.com/questions/768510)