【问题标题】:Iterate through directories and compare two images [MATLAB]遍历目录并比较两个图像 [MATLAB]
【发布时间】:2016-10-25 00:59:10
【问题描述】:

我想用 MATLAB 计算图像质量指标 VIF。因此我下载了vifp_mscale.m。现在我可以使用函数vif = vifvec(img1, img2)。但是我有两个目录(包括子目录),其中有一堆图像。如何循环浏览这些文件夹并正确比较图像?

【问题讨论】:

    标签: image matlab loops directory


    【解决方案1】:

    使用dir:

    ImageFolder1 = dir([pwd '/subfolder1/*.png']) % Or whatever file extension
    ImageFolder2 = dir([pwd '/subfolder2/*.png'])
    

    现在您可以遍历结构 ImageFolder1ImageFolder2 的内容。

    【讨论】:

    • 谢谢!类似的东西:对于 k = 1:length(ImageFolder1) img1 = ImageFolder1(k);这是正确的方法吗?
    • @JoeyDoey 或多或少。好好看看这个结构实际上包含什么,你不能这么称呼它。您确实会遍历ImageFolder 中包含的所有内容,但您仍然必须将每个图像加载到您的工作区中。不过,我不会为您详细说明所有内容,因为您还没有提供自己的代码尝试。
    • vifp_mscale; ImageFolder1 = dir([pwd 'path_to_directory\*.png']); ImageFolder2 = dir([pwd 'path_to_directory\*.png']); for k = 1:length(ImageFolder1) img1 = load(ImageFolder1(k).name); img2 = load(ImageFolder2(k).name); vif = vifvec(img1, img2); end 对吗?
    • @JoeyDoey 看起来不错,是的。不过,您可能需要修改load([pwd ImageFolder2(k).name]),因为我不确定load 是否可以在不指定完整路径的情况下在子文件夹中找到文件。我认为您尝试了代码并且已经知道它是否有效?
    猜你喜欢
    • 2016-08-29
    • 2020-09-09
    • 1970-01-01
    • 2020-03-08
    • 2017-08-17
    • 2017-02-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多