Matlab-как я могу использовать функцию SSIM с помощью функции sprintf
Сейчас я изучаю обработку изображений на предмет интерполяции. Поэтому я изобрел свои новые алгоритмы интерполяции об изображении.
И я должен проверить значение SSIM для моих изображений, которые интерполируются моими алгоритмами интерполяции.
Сейчас я использую инструмент ICY (в Windows, в среде GUI), но этот инструмент слишком сложен для проверки большого количества изображений из-за интерфейса GUI.
Поэтому я хочу проверить значение SSIM изображения с помощью функции Matlab SSIM.
но я не специалист по языку matlab, поэтому у меня проблемы с импортом различных имен в функцию ssim.
Вот что я хочу сделать:
- Я хочу проверить значение ssim с большим количеством изображений.
- Поэтому я собираюсь использовать функцию sprintf, чтобы создать ценное имя изображения.
- Третье, я хочу импортировать это имя входного изображения в функцию ssim.
Это код, который я использовал.
for n= 1 : 10
str = sprintf('./x2/cutted/x2_fn%d_4p_3p_cutted.bmp',n);
str_ori = sprintf('ori_%d.bmp',n);
img_cutted=imread(str);
img_ori=(str_ori);
[ssimval,ssimmap]=ssim(str,str_ori);
end
Когда я использую этот код, вызывается ошибка.
Ошибка: str должен быть типов uint8, uint16, int16, single, double. но вы использовали значение char.
После того, как я получил это сообщение, напишите "uint8 str;" но все равно сообщение вызывается.
1 ответ
ssim получает 2 изображения, а не 2 строки. замени свой код на [ssimval,ssimmap]=ssim(img,img_ori);