2012-08-04 87 views
0

我正在创建一个简单的“hello world”vC++/opencv项目。VC++ 2010 express:如何在编译时将图像文件输出到Debug目录?

在我的代码,我想读取并显示名为“opencv.png”的图像:

int _tmain(int argc, _TCHAR* argv[]) 
{ 
    namedWindow("show_image", WINDOW_AUTOSIZE); 
    Mat src = imread("opencv.png"); 
    imshow("show_image", src); 
    char c = waitKey(0); 
    return 0; 
} 

然后,我把“opencv.png”项目的根路径下。但是我在编译该项目时发现,“opencv.png”不会显示。

在的 “HelloWorld /调试” 目录下,有仅3个文件:

helloworld.exe 
helloworld.ilk 
helloworld.pdb 

我有复制 “opencv.png” 手动 “调试”。如何配置项目以使其在编译时复制“opencv.png”以输出dir?


根据詹姆斯的回答,我认为这有点复杂。有没有更简单的方法,例如在最终的exe文件中嵌入“opencv.png”?

+0

嗯,在版本0.2上工作的时间,它使用argv [1]来代替。现在它与Windows兼容,您可以将您的exe文件与.png文件扩展名关联起来,只需在资源管理器中单击它即可显示* any * PNG文件。 – 2012-08-04 19:28:03

+1

你到底发现了什么?自定义构建步骤可以简单地拷贝$(ProjectDir)\ MyImage.png“$(OutDir)\ MyImage.png'。自定义构建步骤可以是任意命令。通过命令行传递参数的功能更少。 – 2012-08-05 03:39:21

+0

你是对的,它不是那么复杂:) – Freewind 2012-08-05 04:17:01

回答

1

您可以创建Custom Build Step来执行复制。

或者,考虑将图像放置在某个已知位置,以便它不需要复制(例如,在TestData目录中),或通过命令行将路径传递到图像(可以将参数添加到命令在项目属性的调试页面中)。

相关问题