Matlab计算机视觉:如何在image中使用内存中的图像?

时间:2015-08-05 01:41:26

标签: matlab computer-vision matlab-cvst

我目前正在家中开展一个项目,并希望在Matlab中使用计算机视觉工具箱从一组匹配的图像中检索图像。事实上,我在Matlab文档中使用的示例是:Image Matching Example

我不断碰到的障碍是,Matlab中的imageSet类只适用于保存到磁盘的文件。不幸的是,我正在做的工作有一个我人工创建的图像集的4D矩阵。更具体地说,它具有形状(M,N,RGB,I),其中

  • M = X-dir中的像素数
  • N = Y-dir中的像素数
  • RGB = 大小为3,其中RGB的每个通道都存储为页面
  • 我= 图像编号(例如,最多10,000个)

我必须将所有内容写入文件,以便使用imageSet类对象,这似乎很愚蠢。

所以,问题是:有没有人知道创建imageSet对象(或类似对象)的方法,而不必将所有内容写入磁盘上的tmp目录来执行分析,即从工作区变量创建imageSet? / p>

对于我的生活,这个让我整个周末都难过。我知道我可以投降并写入文件,但不知何故,这只会困扰我。

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

您是对的,imageSet仅存储文件名,并为您提供read方法从磁盘读取特定图像。

通常,如果您已将图像存储在内存中,则只需将它们存储在单元格数组中即可。或者,如果您的图像大小相同,则可以将它们保存在一个多维数组中。

但是,在这种特殊情况下,您使用的是bagOfFeatures,目前只需imageSet。因此,您必须将图像保存到文件中。