我在Matlab中的新手,我有一个问题是保存我处理过的图像。 所以这里是执行分割,裁剪我的图像并将其保存在特定路径中的命令
Run.m
Images_Number_Train=length(Input_Images);
Urutan=1;
for loop1=1:Images_Number_Train
Images=imread(Input_Images(loop1));
Label_Images=Label_Train(loop1);
Sign = Crop_Sign(Images);
Order= Save_Crop(Sign,Label_Images,Urutan);
Urutan=Order;
end
保存功能
function Urutan = Save_Crop(Sign,Label_Images,Urutan)
Output_Path = 'E:\Images\Crop\Train\';
if ~exist(Output_Path, 'dir')
mkdir(Output_Training_Path);
end
newimagename = [Output_Path 'Images_Crop_' num2str(Urutan) '.pgm'];
imwrite(Sign,newimagename);
Urutan=Urutan+1;
end
我有120个图像,每次运行命令时,此程序只能读取图像直到30,然后停止..
我收到了这个错误信息:
Error using imwrite (line 421)
Expected DATA to be nonempty.
Error in Save_Crop (line 24)
imwrite(Sign,newimagename);
并且Sign变量的值将是(在图像30之后)
val =
Empty array: 0-by-0-by-3
任何建议,我必须做什么
答案 0 :(得分:1)
看起来你实际上有一个空图像。 (它有0x0x3 == 0个元素)。
如果您认为不是这种情况,请务必仔细检查您的数据。否则,如果您只是想跳过它,请使用if
语句包装部分代码:
if(~isempty(Images))
%Do stuff
end