Я написал код для очистки и печати нескольких изображений,
data_1=csvread(data)
for h=1:30
im_old=imread(strcat('catches\image_generator (',int2str(h),').png'));
im_bw=func_bw(im_old);
im_2=func_clean_tr(im_bw);
[im_3a,im_3b]=edge_trial(im_2);
da=data_1{h,2};
name=strcat('trrr\',da,'trial.png');
imwrite(im_3b,strcat('trrr\',int2str(h),'trial.png'));
end
Есть конкретная проблема. Imwrite работает, когда параметры:
imwrite(im_3b,strcat('trrr\',int2str(h),'trial.png'));
Но это не сработает, когда я задаю параметры как:
imwrite(im_3b,strcat('trrr\',da,'trial.png'));
Я перепроверил, что da
является строкой 1x1, а strcat('trrr\',da,'trial.png')
также является строкой 1x1. Показанная ошибка:
Ошибка при использовании imwrite›parse_inputs (строка 510)
Должно быть указано имя файла.
Не знаю, почему imwrite
обрабатывает две строки по-разному...
Edit1: мои данные_1 читаются как: 1,X55N3 2,PQZXS 3,HDDS3... Кроме того, значение da=data_1{h,2}; это X55N3
da
является строкой, вы объединяете ее с двумя массивами символов вname
. Я не знаю, что это будет делать, но, вероятно, это что-то неожиданное. Вы распечаталиname
, чтобы посмотреть, как это выглядит? - person Cris Luengo   schedule 10.02.2018name
становится строкой, аimwrite
ожидает массив символов? - person Cris Luengo   schedule 10.02.2018imread
, который допускает только массив символов и никаких строк. - person Pranav Totala   schedule 11.02.2018