我有一张图片,我想将该图片转换为灰色。之后,我试图在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
问题是什么以及如何解决?
答案 0 :(得分:2)
您似乎已将GUI gray.m
命名为与内置gray
函数冲突,该函数提供灰度色彩图(imshow
的默认值)。因此,当MATLAB尝试创建灰度色图(colormap(gray)
)时,它会调用您的GUI并且输出不是colormap
所期望的,导致您显示的错误。< / p>
您需要将GUI重命名为其他内容,否则您应该没有问题。