刚刚学习OpenCV,这是教程给的一个程序,我用VC++ 6.0编译、运行都没问题,但是就是不显示图像!不知道到底

刚刚学习OpenCV,这是教程给的一个程序,我用VC++ 6.0编译、运行都没问题,但是就是不显示图像!不知道到底是哪步出问题了

我把一张名为Image.jpg的图像放到了D盘、D\VC++、D\VC++\Debug等目录下,在D\VC++下新建一个C++源文件LoadImage.cpp,复制如下代码:
#include "cv.h"
#include "highgui.h"

int main( int argc, char** argv )
{
IplImage* pImg; //声明IplImage指针

//载入图像
if( argc == 2 &&
(pImg = cvLoadImage( argv[1], 1)) != 0 )
{
cvNamedWindow( "Image", 1 );//创建窗口
cvShowImage( "Image", pImg );//显示图像

cvWaitKey(0); //等待按键

cvDestroyWindow( "Image" );//销毁窗口
cvReleaseImage( &pImg ); //释放图像
return 0;
}

return -1;
}
结果除了press any key to continue!以外什么都没有!

if ((pImg=cvLoadImage("Image.jpg",CV_LOAD_IMAGE_ANYCOLOR))==0)
{
return 0;
}

else
{
cvNamedWindow("显示图像",1); //创建窗口
cvShowImage("显示图像",pImg); //显示图像
cvWaitKey(0); //等待按键
cvDestroyWindow("显示图像"); //销毁窗口
cvReleaseImage(&pImg); //释放图像
}

试试看这个追问

使用了你的程序,然后点运行键,出来了如下窗口"D:\VCXL6\hello\hello.exe",显示的是press any key to continue\应该在怎样做?我输入了cmd点回车,然后什么都没有了。谢谢你

追答

我用的是VS2005,可以显示图片

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-01-08
if( argc == 2 &&
(pImg = cvLoadImage( argv[1], 1)) != 0 )
改为
plmg = cvLoadImage("..文件路径", 1);
第2个回答  2013-01-07
pImg = cvLoadImage( argv[1], 1)) != 0,程序中这句话的意思是通过设置配置属性参数加载图像,这个需要在配置属性--调试--命令参数 里面设置你图片放置的路径,比如D\VC++\Image.jpg,这样改了就好了。
更简单的方法是“pImg = cvLoadImage( argv[1], 1)) != 0”改为“pImg = cvLoadImage( "D\\VC++\\Image.jpg" ,1)) != 0”,这样也可以。追问

我按照你的第二种方法改了,还是 不可以实现。你的第一种方法的配置属性在cv++6里的哪呀?
十分感谢!

追答

在Project--Debug--Program arguments 里面输入。
第二种方法给D后面加个冒号,漏掉冒号了。pImg = cvLoadImage( "D:\\VC++\\Image.jpg" ,1)) != 0。

追问

我将“pImg = cvLoadImage( argv[1], 1)) != 0”改为“pImg = cvLoadImage( "D:\\VCXL6\\hello\\lena.jpg" ,1)) != 0”,然后点运行键,出来了如下窗口"D:\VCXL6\hello\hello.exe",显示的是press any key to continue\应该在怎样做?我输入了cmd点回车,然后什么都没有了。谢谢你

追答

你按我说的第一种方法试吧。这是OpenCV打开图片的基础问题,比较简单,这样问下去描述的越来越复杂。要理解这个程序,你搜下cvLoadImage()这个函数的用法。

相似回答