代码存储impixel一系列图像抛出错误数据到达的第一个增量循环的结束

5视图(30天)
你好,我想写一个脚本打开一系列的jpeg文件,让用户选择一个特征在图像中两个点,这些点的像素数据存储在一个数组,所有这些在for循环,以便下一个图像可以被打开,并将其数据存储在数组的下一行。我意识到我的代码绝对不是那样紧凑,但似乎工作完美的第一图像,然后把一系列的错误当试图继续循环,做同样的事情在接下来的图片:
错误使用imread > get_format_info(第545行)
无法确定文件格式。
错误imread / call_format_specific_reader(第466行)
fmt_s = get_format_info (fullname);
错误imread(第440行)
[X,地图]= call_format_specific_reader ();
错误法典(14)行
我= imread (strcat(‘球’,num2str (k), jpeg));
任何帮助将非常感激,谢谢!
这是我的代码:
selpath = uigetdir;
fds = fileDatastore (‘* . jpeg‘,“ReadFcn”,@importdata);
fullFileNames = fds.Files;
numFiles =长度(fullFileNames);
%选择目录存储照片,过滤器为jpeg文件
%发现这种格式的文件数量,并存储这个数量
%变量
ξ= 0 (numFiles, 2);
易= 0 (numFiles, 2);
%为数组分配内存的x和y坐标的值
%将被添加在每个阶段的下面的for循环,现在
%设置为0
k = 1: numFiles
我= imread (strcat (“球”num2str (k),“jpeg”));
[x, y,像素]= impixel(我);
%的文件应该叫ball1 ball2等等,然后打开图像k,等待
%的用户选择球两边的形象,和存储
%的x和y值点击临时变量x和y
习(k, [1 - 2]) = x;
易(k, [1 - 2]) = y;
关闭;
xi,易
%改变各自的值数组的行
%的临时值当前图像,然后关闭和形象
%打印数组到目前为止
结束
4评论
鲍比
鲍比 2023年4月6日
啊好吧非常感谢我搞懂了。不是我的代码的问题,是因为我的一个映像的文件扩展名改为jpg几周前,忘了我这么做,非常愚蠢的错误,但是很高兴现在固定了,谢谢!

登录置评。

接受的答案

图像分析
图像分析 2023年4月6日
问题是代码不是很健壮。您应该看到常见问题解答:
使用代码,你得到的文件名而不是构建他们自己的操作系统。
如果你坚持自己构建文件名,而不是使用 dir imageDatastore 要保证存在的文件名,您应该检查存在的文件从一个循环迭代器构建一个文件名前:
baseFileName = sprintf (“球% d.jpeg”、k);
baseFileName fullFileName = fullfile (pwd);
如果~ isfile (fullFileName)
warningMessage = sprintf (“警告:文件未找到:\ n % s的fullFileName)
uiwait (warndlg (warningMessage))
继续;% k的跳到下一个迭代。
结束
%如果你到达这里,文件肯定存在。
由高级= imread (fullFileName);

更多的答案(0)

标签

s manbetx 845


释放

R2021a

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!