Matlab 未定义的函数或方法';readimage';对于类型为';char';
我试图加载一个映像,但它显示了错误消息Matlab 未定义的函数或方法';readimage';对于类型为';char';,matlab,Matlab,我试图加载一个映像,但它显示了错误消息未定义的函数或方法'readimage',用于'char'类型的输入参数。 我的调用函数在这里 h=uicontrol(FigWin,... 'Style','pushbutton',... 'Position',[0,320,80,20],... 'String','Load',... 'Callback',... ['image1=loadimage;'... 'subplot(AxesHandle1);'... 'imagesc(ima
未定义的函数或方法'readimage',用于'char'类型的输入参数。
我的调用函数在这里
h=uicontrol(FigWin,...
'Style','pushbutton',...
'Position',[0,320,80,20],...
'String','Load',...
'Callback',...
['image1=loadimage;'...
'subplot(AxesHandle1);'...
'imagesc(image1);'...
'title(textLoad);'...
'colormap(gray);']);
我调用的函数如下所示
function image1=loadimage
[imagefile1 , pathname]= uigetfile('*.bmp;*.BMP;*.tif;*.TIF;*.jpg','Open An Fingerprint image');
if imagefile1 ~= 0
cd(pathname);
image1=readimage(char(imagefile1));
image1=255-double(image1);
end
end
另一个问题,如果程序中有警告,这是一个问题吗?对不起,我是Matlab新手。多谢各位 我只能将此作为路径问题重现 几乎可以肯定的是,
readimage.m
不在路径上,而是位于您测试它的当前目录中。目前最简单的解决方案是直接使用imread
而不是直接使用包装器readimage
,但假设您想在以后向readimage
添加功能:
简单的解决方案是将目录readimage.m
添加到路径中(文件->设置路径->添加文件夹->浏览到带有readimage.m的目录)。但是,如果您想测试这确实是问题所在,那么请确保您可以手动运行readimage('existing_image.jpg')
(这意味着您应该浏览到该目录),然后运行以下修改过的代码
function image1=loadimage
[imagefile1 , pathname]= uigetfile('*.bmp;*.BMP;*.tif;*.TIF;*.jpg','Open An Fingerprint image');
if imagefile1 ~= 0
image1=readimage([pathname imagefile1]);
image1=255-double(image1);
end;
与原始代码的唯一区别在于,我们没有使用cd(路径名)来更改目录,而是将其合并到readimage命令本身中
我打赌cd()命令和它不在路径上的组合会让你认为readimage(w)在路径上并且工作,而实际上它只是在当前目录中。。。直到cd()命令运行。稍微重写一下函数:
function img = loadimage()
[fname,pname] = uigetfile('*.bmp;*.tif;*.jpg', 'Open Fingerprint image');
if pname==0, error('no file selected'); end
img = imread( fullfile(pname,fname) );
img = 255 - double(img);
end
MATLAB中没有名为readimage的函数。你定义了你自己的吗?或者你可以试着改用。谢谢。我的readimage函数类似于
函数b=readimage(w)a=imread(w);b=双(a)
请在Matlab命令窗口中运行哪个readimage
,检查函数在路径上是否可见。如果没有,请将目录更改为已存储readimage的位置,或将该目录添加到路径(在菜单文件中)。