image()在MATLAB中修改实际图像内容
我用下面的代码在MATLAB的图形窗口中显示一幅图像image()在MATLAB中修改实际图像内容,image,matlab,plot,matlab-figure,Image,Matlab,Plot,Matlab Figure,我用下面的代码在MATLAB的图形窗口中显示一幅图像 im = imread('Image02.tif'); processAndDisplayImage(im); hImage = image(im); set(hImage,'ButtonDownFcn',@clickInImage); 但问题是,上面的第三行由于我不知道的原因改变了图像。有没有办法不经修改就获得图像句柄 更新:解决了问题。请参阅下面我的答案。图形命令无法更改图像。我只能猜测它以一种你不想要的方式显示图像。检查图像的范围-
im = imread('Image02.tif');
processAndDisplayImage(im);
hImage = image(im);
set(hImage,'ButtonDownFcn',@clickInImage);
但问题是,上面的第三行由于我不知道的原因改变了图像。有没有办法不经修改就获得图像句柄
更新:解决了问题。请参阅下面我的答案。图形命令无法更改图像。我只能猜测它以一种你不想要的方式显示图像。检查图像的范围-
max(im(:));
以及类型:
class(im);
并尝试找出错误所在图像图形命令无法更改图像。我只能猜测它以一种你不想要的方式显示图像。检查图像的范围-
max(im(:));
以及类型:
class(im);
试着找出问题所在,而不是
hImage = image(im);
我用下列方法来解决我的问题
[hImage hfig ha] = imhandles(gcf);
但我仍然不明白image命令对图中显示的实际图像有何影响。而不是
hImage = image(im);
我用下列方法来解决我的问题
[hImage hfig ha] = imhandles(gcf);
但我仍然不明白image命令对图中显示的实际图像有何影响。也许您可以修改
processAndDisplayImage
,使其返回显示图像的句柄作为输出变量?也许您可以修改processAndDisplayImage
,使其返回显示图像的句柄图像作为输出变量?好吧,如果问题那么简单,我就不会问了。im通常与矩阵无关。image命令删除了我在图像上绘制的网格线,并以某种方式对其进行了均衡。所以image命令实际上做了一些事情。好吧,如果问题这么简单,我就不会问了。im通常与矩阵无关。image命令删除了我在图像上绘制的网格线,并以某种方式对其进行了均衡。所以image命令实际上做了一些事情,我可以做到,但是如何在函数内部获得句柄呢?相同的图像命令?我试着让它产生同样的不希望的结果。我猜,由于它被称为processAndDisplayImage
,所以在该函数中已经有一些显示图像的代码了。通常,执行此操作的命令能够将句柄返回到显示的图像,或返回到包含该图像的轴或图形。也许可以收集这些信息,并将其作为processAndDisplayImage
的输出返回。如果句柄指向轴或图形,而不是图像本身,则可以通过检查子对象来获得图像的句柄。我可以这样做,但如何在函数内部获得句柄?相同的图像命令?我试着让它产生同样的不希望的结果。我猜,由于它被称为processAndDisplayImage
,所以在该函数中已经有一些显示图像的代码了。通常,执行此操作的命令能够将句柄返回到显示的图像,或返回到包含该图像的轴或图形。也许可以收集这些信息,并将其作为processAndDisplayImage
的输出返回。如果控制柄指向轴或图形,而不是图像本身,则可以通过检查子对象来获得图像的控制柄。