为什么OpenCV的拒绝cvLoadImage(“string.ext”),但接受cvLoadImage(的argv [1])?
-
22-07-2019 - |
题
#include "cv.h"
#include "highgui.h"
#include <stdio.h>
int main(int argc, char* argv[]){
cvNamedWindow("Window1", CV_WINDOW_AUTOSIZE);
IplImage* image = 0;
->->image = cvLoadImage(argv[1]);<-<-
if(!image) printf("Unable to load image!");
cvShowImage("Window1", image);
char c = cvWaitKey(0);
cvReleaseImage(&image);
cvDestroyWindow("Window1");
return 0;
}
如果我与cvLoadImage("247.png")
更换指示的线I得到一个空白窗口和图像保持等于零
如果我运行exe文件,并给它247.png作为一个参数,它只是花花公子。如果我把“247.png”进入代码,并建立和运行Visual Studio 2008中,它失败。如果我建立并从命令提示符下运行,它的工作原理。
这是为什么?我有点厌倦向前运动没有得到下来的。
解决方案
在项目 - >属性 - >配置属性 - >调试有一个字段“工作目录”。其设置为你想要执行的目录,应该解决这个问题。
其他提示
您的某些“247.png”在当前工作目录时,你有名字硬编码?
下像过程中运行该程序监测看什么文件真的被打开(或I / O错误有可能是什么文件)。
在您的编辑添加更多信息的问题(从VS2008运行时出现的问题),这是几乎可以肯定你的问题。该VS下启动该程序的当前目录不是具有“247.png”文件的目录。
您可以检查您的cwd
是什么?
您可以#include <direct.h>
并使用_getcwd
函数来看看它是什么。这可能会指向你的罪魁祸首。
不隶属于 StackOverflow