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的位置,或将该目录添加到路径(在菜单文件中)。