使用OpenCV 3.0

时间:2015-09-04 21:23:56

标签: c++ opencv

我是C ++编程的新手,我需要这样做:我有一个代码,它接收两个图像的路径并输出一个数字(使用opencv的直方图相似性)。

我需要使用这个功能,这样它不会给第二个图像文件,而是从文件夹加载图像,重复操作的次数与文件夹中的图像一样多,并存储结果。

如果你可以指出我可以使用的功能或某个地方,我可以学到这些,我会非常感激,我的知识非常有限。

我没有任何限制,但我也非常迷失。我想我需要放置我已经拥有的函数并为agv [i]更改argv [1]。但是如何从目录中调用文件?我应该在txt中保存文件的所有名称吗?

2 个答案:

答案 0 :(得分:5)

OpenCV具有glob功能

void cv::glob   (   String      pattern,
    std::vector< String > &     result,
    bool    recursive = false 
)   

here你可以找到关于这个功能的详细答案

答案 1 :(得分:0)

首先,您不需要在txt文件中保存文件的所有名称。我很多次遇到过同样的问题,并找到了以下解决方案。正如micka建议你必须使用与opencv无关的dirent.h

  1. 将您的图片放在一个文件夹中并命名。
  2. Google for dirent.h并下载并将其添加到您的C ++ / opencv项目中。 (在我的情况下,我使用了visual studio,因此我不得不使用添加新项目选项。只需谷歌并找到如何为您的项目添加头文件)
  3. 添加后,根据需要更改后运行以下代码

    :%!tr esta ESTA
    

    所以你看到dirent.h和sprintf在这里完成了工作。我在上面添加了一些描述作为注释并引用它们。希望这有帮助。询问您是否有任何要澄清的内容。谢谢!!