Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在MATLAB中创建的GUI中显示编辑过的图片时出现的问题_Matlab_User Interface_Matlab Guide - Fatal编程技术网

在MATLAB中创建的GUI中显示编辑过的图片时出现的问题

在MATLAB中创建的GUI中显示编辑过的图片时出现的问题,matlab,user-interface,matlab-guide,Matlab,User Interface,Matlab Guide,我的任务是使用MATLAB指南创建GUI,我在显示编辑过的图片时遇到问题。我需要有编辑图片的按钮(例如,删除红色、蓝色、绿色组件和旋转)并显示编辑过的图片。我正在使用imshow显示编辑的图片,但它会显示在一个新窗口中,并关闭我运行的GUI。有人能帮忙吗 我一直在努力解决这个问题,并尝试了许多不同的方法来解决这个问题,但都没有奏效。但是,我使用的是MATLAB 7.0.1,7.7.0可能对此问题进行了更新。当您第一次用它打印图像时,让它返回它创建的图像对象的句柄: A = (the initia

我的任务是使用MATLAB指南创建GUI,我在显示编辑过的图片时遇到问题。我需要有编辑图片的按钮(例如,删除红色、蓝色、绿色组件和旋转)并显示编辑过的图片。我正在使用
imshow
显示编辑的图片,但它会显示在一个新窗口中,并关闭我运行的GUI。有人能帮忙吗


我一直在努力解决这个问题,并尝试了许多不同的方法来解决这个问题,但都没有奏效。但是,我使用的是MATLAB 7.0.1,7.7.0可能对此问题进行了更新。

当您第一次用它打印图像时,让它返回它创建的图像对象的句柄:

A = (the initial matrix of image data);
hImage = imshow(A);
然后,要使用新数据更新图像,请尝试以下操作,而不是再次调用
imshow

B = (modification of the original image matrix A);
set(hImage, 'CData', B);
使用该命令将更改已创建的图像对象(可以找到图像对象属性列表)

或者,您也可以向调用
imshow
添加其他参数,以告知要在哪个轴对象中打印图像:

hAxes = (the handle to an axes object);
imshow(A, 'Parent', hAxes);

编辑:


要解决函数之间共享GUI数据的附加问题,您应该查看MATLAB文档。如前所述,在GUI中涉及的不同功能之间传递数据有几种不同的方法:嵌套函数(如前所述)、使用对象的“UserData”属性(如前所述)或使用函数/或。
guidata
选项最适合与指南中的GUI一起使用。

GUI m文件函数会自动将图像数据分配给名为
hObject
的变量。完成图像更改后,必须将新数据重新分配给
hObject

hObject = imshow(newimagedata)
不要忘记通过以下方式更新和保存此操作:

guidata(hObject, handles)

我在下面给出的链接与最新版本的MATLAB(2009a)有关。我不确定自v7.0.1以来,与此特定问题相关的变化有多大。我知道当我在v7.1和v7.7中运行IMSHOW时,它的表现略有不同。如果您可以发布部分(而不是全部)代码,或许我们可以提供更多帮助。我现在遇到的问题是,您没有意识到存在变量“hImage”。我想这是因为我试图在GUI中的不同功能中编辑图片。我如何携带hImage数据?