【问题标题】:Matlab Computer Vision: How to use image in memory for imageSet?Matlab计算机视觉:如何将内存中的图像用于imageSet?
【发布时间】:2015-10-27 14:43:31
【问题描述】:

我目前正在家里做一个项目,希望使用 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?

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

非常感谢任何帮助。

【问题讨论】:

    标签: matlab computer-vision matlab-cvst


    【解决方案1】:

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

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

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

    【讨论】:

    • 所以,为了清楚起见,我所描述的图像矩阵可以在使用 imageSet 对象的任何地方传递到诸如“indexImages”或“retrieveImages”之类的命令中?不幸的是,我要等到这个周末才能参加考试,因为我现在正在路上。但如果我理解正确,一定会发布我的结果。
    • 哦,我明白你的意思了。不幸的是,bagOfFeatures 只接受 imageSet,因此您必须将图像保存到文件中。
    • 叹息...谢谢你的澄清,迪玛。
    猜你喜欢
    • 2018-05-13
    • 1970-01-01
    • 2015-11-30
    • 1970-01-01
    • 2016-04-14
    • 2015-02-28
    • 1970-01-01
    • 2011-06-17
    • 2015-01-30
    相关资源
    最近更新 更多