Matlab-как я могу использовать функцию SSIM с помощью функции sprintf

Сейчас я изучаю обработку изображений об интерполяции. Поэтому я изобрел свои новые алгоритмы интерполяции изображения.

И я должен проверить значение SSIM для моих изображений, которые интерполируются моими алгоритмами интерполяции.

Теперь я использую инструмент ICY (в Windows, среда с графическим интерфейсом), но этот инструмент слишком сложен для проверки большого количества изображений из-за интерфейса с графическим интерфейсом.

Итак, я хочу проверить значение SSIM изображения, используя функцию ssim matlab.

но я не эксперт в языке Matlab, поэтому у меня проблемы с импортом различных имен в функцию ssim.

Вот что я хочу сделать:

  1. Я хочу проверить значение ssim с большим количеством изображений.
  2. Итак, я собираюсь использовать функцию sprintf, чтобы сделать ценное имя изображения.
  3. В-третьих, я хочу импортировать это имя входного изображения в функцию 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;" но все же сообщение вызывается.


person 박윤호    schedule 26.07.2017    source источник
comment
ты имеешь в виду ssim(img,img_ori)? Где вы получаете ошибку?   -  person Ander Biguri    schedule 26.07.2017
comment
да!, ssim(omg,img_ori) ‹- вот точка ошибки   -  person 박윤호    schedule 26.07.2017
comment
Я думаю, что функция ssim, предоставляемая набором инструментов, не поддерживает значение char... обычно функция ssim используется следующим образом: ssim('filename','filename');   -  person 박윤호    schedule 26.07.2017
comment
kr.mathworks.com/help/images/ref/ssim.html это помощь функции ssim... кто-нибудь, пожалуйста, помогите мне...!   -  person 박윤호    schedule 26.07.2017
comment
конечно, сообщение об ошибке переведено, потому что я использую Matlab Korean ver. но это сообщение об ошибке.   -  person 박윤호    schedule 26.07.2017
comment
Вы используете их неправильно, я думаю. ssim получает на вход 2 изображения, а не 2 строки. замените свой код на [ssimval,ssimmap]=ssim(img,img_ori);   -  person Ander Biguri    schedule 26.07.2017
comment
о... Я был идиотом, Так что спасибо. Я думаю, что просто нервничал из-за того, что использую Matlab. Я хорошо разбираюсь в C и Verilog, но в языке Matlab. в любом случае так спасибо.   -  person 박윤호    schedule 26.07.2017


Ответы (1)


ssim получает на вход 2 изображения, а не 2 строки. замените свой код на [ssimval,ssimmap]=ssim(img,img_ori);

person Ander Biguri    schedule 26.07.2017