【问题标题】:Saving matrix in double precision from OpenCV (C++) for Matlab从 OpenCV (C++) 为 Matlab 保存双精度矩阵
【发布时间】:2023-03-23 13:50:01
【问题描述】:

我想将 OpenCV 创建的矩阵与 Matlab 中的矩阵进行比较。如果矩阵是 uint8,将它们保存为 pgm 图像就可以了。但我的矩阵是 CV_64FC1 (double),不能保存为图像。有什么简单的方法可以保存我的双矩阵以便在 Matlab 中阅读?

【问题讨论】:

  • 你的意思是比文件输出更简单?
  • @gokcehan 我不认为 CV_64FC1 可以保存。我说的对吗?
  • 我不认为他的意思是图像。将原始数据输出到文件
  • 好吧,我已经很久没有接触过opencv了,但你不能只打印这些值并将它们保存到文本文件中吗?这就是我的意思。
  • @gokcehan 这很难,因为它们是双精度的。

标签: matlab opencv


【解决方案1】:

从 OpenCV 示例中试试这个。

Mat r
std::stringstream ss;
ss << format(r,"csv") << endl << endl;
myFile << ss.str();
// or even this
myFile << format(r,"csv") << endl << endl;

【讨论】:

  • 效果很好。谢谢你的回答。
  • 嘿,我正在应用你的方式,但我的文本文件中出现奇怪的值,我的矩阵是 CV_64F:51.0225219726563219.4757385253906-722.7874145507813-375.035
【解决方案2】:

只需将每个像素的强度写入一个文件,然后使用 MATLAB 使用importdata 读取它。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多