Matlab-如何使用sprintf函数使用SSIM函数

时间:2017-07-26 07:25:39

标签: matlab image-processing printf interpolation ssim

现在我正在研究关于插值的图像处理。所以我发明了关于图像的新插值算法。

我必须检查通过插值算法插值的我的图像的SSIM值。

现在我正在使用ICY工具(在Windows,GUI环境中),但是由于GUI界面,这个工具太难以检查大量图像。

所以我想用matlab ssim函数检查图像SSIM值。

但我不是matlab语言的专家,所以我在处理导入各种名称到ssim函数方面遇到了麻烦。

这就是我想要做的事情:

  1. 我想用大量图片检查ssim值。
  2. 因此,我将使用sprintf函数制作有价值的图片名称。
  3. 第三个我想将此输入图像名称导入ssim函数。
  4. 这是我使用的代码。

    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 个答案:

答案 0 :(得分:0)

ssim获取2个图像作为输入,而不是2个字符串。用[ssimval,ssimmap]=ssim(img,img_ori);

替换您的代码