为什么OpenCV的拒绝cvLoadImage(“string.ext”),但接受cvLoadImage(的argv [1])?

StackOverflow https://stackoverflow.com/questions/445295

  •  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函数来看看它是什么。这可能会指向你的罪魁祸首。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top