未定义的变量“myTiff2mat1”或类“myTiff2mat1.img”

时间:2014-01-04 20:19:07

标签: matlab

我从2天开始就在努力解决这个问题。请帮我解决这个问题。我正在进行船舶分支分割,我从mathworks central获得了代码。

http://www.mathworks.in/matlabcentral/fileexchange/36031-vessel-branch-segmentation

请从该网站下载提交内容,然后打开readme.txt

现在,在Readme.txt中,我被要求将tiff图像转换为.mat格式,我使用以下代码进行转换。

A = imread('C:\Users\123\Desktop\vbs\images\01_test.tif');
save('myTiff2mat1','A');

现在,当我尝试使用执行vesselbranchsegmentation.m后得到的UI窗口上传.mat文件时

我收到以下错误

------------------------------
Undefined variable "myTiff2mat1" or class "myTiff2mat1.img".

Error in VesselBranchSegmentation>LoadMatFile (line 855)
eval(['img=' sprintf('%s',fileName(1:end-4)) '.img;']);

Error in VesselBranchSegmentation>ReadOrgImg (line 834)
    [img fileprefix]=LoadMatFile(pathName,fileName);

Error in VesselBranchSegmentation/CBMfileNew (line 120)
    [tmporgImg  saveFileName] = ReadOrgImg('Pick a mat file.');
Error while evaluating uimenu Callback
----------------------------------------------

请帮我解决这个问题。

1 个答案:

答案 0 :(得分:2)

如果查看LoadMatFile(),它希望.mat文件包含与文件同名的变量,因此它会查找myTiff2mat1并忽略A

其次,这仍然可能不起作用,因为README说使用VBSreadTiff()并且您使用了imread(),这将不会创建正确的数据结构。

我这里没有Matlab来检查它,但是可能足以作为黑客攻击:

myTiff2mat1.img = imread('C:\Users\123\Desktop\vbs\images\01_test.tif');
save('myTiff2mat1','myTiff2mat1');