如何在 matlab gui 中显示灰度图像

how display a gray image in matlab gui

我有一张图片,我想将该图片转换为灰色。之后,我尝试在 GUI 中显示该灰色图像,但它看起来就像彩虹一样。如何在 GUI 中显示灰色图像?我尝试了下面的代码,但它不起作用。请帮助

X = imread('j3.jpg');
X=rgb2gray(X);
axes(handles.axes1);
imshow(X)

但是我得到了以下错误:

Error using matlab.ui.Figure/set
While setting the 'Colormap' property of 'Figure':
Value must be either:
an Mx3 array of type single or double in the range [0 1]
an Mx3 array of type uint8

Error in images.internal.basicImageDisplay (line 71)
    set(fig_handle, 'Colormap', map);

Error in imshow (line 293)
  hh = images.internal.basicImageDisplay(fig_handle,ax_handle,...

Error in gray>pushbutton1_Callback (line 83)
imshow(X)

Error in gui_mainfcn (line 95)
        feval(varargin{:});

Error in gray (line 42)
    gui_mainfcn(gui_State, varargin{:});

Error in
matlab.graphics.internal.figfile.FigFile/read>@(hObject,eventdata)gray('pushbutton1_Callback',hObject,eventdata,guidata(hObject)) 
Error while evaluating UIControl Callback

问题是什么,如何解决?

看来您已将 GUI 命名为 gray.m,这与提供灰度颜色图(imshow 的默认值)的内置 gray 函数冲突。因此,当 MATLAB 尝试创建灰度颜色图 (colormap(gray)) 时,它会调用您的 GUI,并且输出不是 colormap 所期望的,从而导致您显示的错误。

您需要将 GUI 重命名为其他名称,应该没有问题。