gpt4 book ai didi

c++ - 为什么 OpenCV 拒绝 cvLoadImage ("string.ext"),但接受 cvLoadImage(argv[1])?

转载 作者:行者123 更新时间:2023-11-28 04:01:11 26 4
gpt4 key购买 nike

#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") 替换指示的行,我得到一个空白窗口并且图像保持为零

如果我运行 exe 并给它 247.png 作为参数,那就太棒了。如果我将“247.png”直接放入代码中并构建并运行它 Visual Studio 2008,它会失败。如果我从命令提示符构建并运行,它就可以工作。

这是为什么?我有点厌倦了在不记下这一点的情况下继续前进。

最佳答案

当您对名称进行硬编码时,您确定“247.png”在当前工作目录中吗?

Process Monitor 下运行程序查看真正打开的文件(或可能存在的文件 I/O 错误)。

在您编辑以向问题添加更多信息后(从 VS2008 运行时会出现问题)这几乎可以肯定是您的问题。 VS启动程序的当前目录不是“247.png”文件所在的目录。

关于c++ - 为什么 OpenCV 拒绝 cvLoadImage ("string.ext"),但接受 cvLoadImage(argv[1])?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/445295/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com