Matlab 计算机视觉:如何将内存中的图像用于 imageSet?

Matlab Computer Vision: How to use image in memory for imageSet?

我目前正在家里做一个项目,希望使用 Matlab 中的计算机视觉工具箱从一组与我的查询图像相匹配的图像中检索图像。事实上,我在这里使用的示例来自 Matlab 文档:Image Matching Example

我一直遇到的问题是,Matlab 中的图像集 class 似乎只能处理保存到磁盘的文件。不幸的是,我正在做的工作有一个我人工创建的图像集的 4D 矩阵。更具体地说,它具有 (M,N,RGB,I) 的形状,其中

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

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

对于我的生活来说,这个让我整个周末都感到难过。我知道我可以屈服并写入文件,但不知怎的,这让我很困扰。

非常感谢任何帮助。

你是对的,imageSet 只存储文件名,并给你一个 read 方法来从磁盘读取特定图像。

一般来说,如果您已经将图像存储在内存中,则可以简单地将它们存储在元胞数组中。或者,如果您的图像大小都相同,则可以将它们保存在一个多维数组中。

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