【问题标题】:Matlab-how can I use SSIM function using sprintf functionMatlab-如何使用 sprintf 函数使用 SSIM 函数
【发布时间】:2017-07-28 15:08:21
【问题描述】:

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

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

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

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

但我不是 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;”但仍然调用消息。

【问题讨论】:

  • 你的意思是ssim(img,img_ori)?你从哪里得到错误?
  • 是的!,ssim(omg,img_ori)
  • 我认为工具箱提供的ssim函数不支持char值...通常ssim函数是这样使用的"ssim('filename','filename');"
  • kr.mathworks.com/help/images/ref/ssim.html这是ssim函数的帮助...有人请帮帮我..!
  • 当然“错误”是翻译后的信息,因为我用的是matlab韩文版。但这就是错误消息所说的内容。

标签: matlab image-processing printf interpolation ssim


【解决方案1】:

ssim 获取 2 个图像作为输入,而不是 2 个字符串。将您的代码替换为[ssimval,ssimmap]=ssim(img,img_ori);

【讨论】:

    猜你喜欢
    • 2020-05-01
    • 1970-01-01
    • 2021-06-25
    • 1970-01-01
    • 2013-03-10
    • 1970-01-01
    • 2019-05-26
    • 2012-06-23
    • 2014-04-15
    相关资源
    最近更新 更多