使用 imread 的相对路径 (OpenCV)

Aub*_*tte 0 c++ opencv

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

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

Dav*_*nan 5

相对路径是相对于进程工作目录的。这不一定与可执行文件所在的目录相同。因此,假设您的其他一切都正确,那么最可能的解释是您的工作目录与可执行文件所在的目录不同。

无论如何,听起来好像您希望程序将文件定位在相对于可执行文件的目录中。在这种情况下,您不应依赖工作目录,而需要形成文件的完整路径。您只需要在前面添加可执行文件的目录即可。