使用imread(OpenCV)的相对路径

时间:2013-08-02 14:33:00

标签: c++ opencv

我有一个问题,我不知道它来自哪里。请看一下这个功能:
http://pastie.org/8200205
imread似乎返回空矩阵。
要清楚,我的图像位于ImageData目录中,它直接位于我的程序所在的位置,对于像apple这样的每个对象类型,我有一个像对象类型一样被调用的目录,里面是所有的苹果图像(如果那是当前的对象类型)
另外,我正在使用cmake,但我很确定我不需要包含任何代码的目录。

那么这里的问题是什么?我的路径是错误的还是imread在子目录中不起作用?
我感谢任何建议/解决方案:)

1 个答案:

答案 0 :(得分:3)

相对路径相对于流程工作目录。这不一定与可执行文件所在的目录相同。因此,假设您已完成其他所有操作,那么最可能的解释是您的工作目录与可执行文件所在的目录不同。

在任何情况下,听起来好像您希望程序在相对于可执行文件的目录中找到文件。在这种情况下,您不应该依赖工作目录,而是需要形成文件的完整路径。您只需要预先添加可执行文件的目录。