初学者:OpenCV读取、显示图像问题

刚刚学习OpenCV,这是教程给的一个程序,我用VC++6.0编译、运行都没问题,但是就是不显示图像!不知道到底是哪步出问题了我把一张名为Image.jpg的图像放到了D... 刚刚学习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!以外什么都没有!
你好,这个问题是你在三年前碰到的,请问你是怎么解决的,非常感谢。
展开
 我来答
914422215
2013-01-12 · TA获得超过305个赞
知道小有建树答主
回答量:96
采纳率:0%
帮助的人:166万
展开全部
int main( int argc, char** argv )

argc表示参数的个数
argv表示输入的参数,一般第1个参数是你要运行的程序路径名,第2个参数是传递给这个程序main函数的参数,这里第2个参数为你要显示的图像路径。
你的程序对agrc进行了判断,如果参数个数为2,则cvLoadImage( argv[1], 1)),即加载第2个参数的内容,即你要显示的图像,所以这个程序如果在VC6.0里直接点运行,没有机会给main输入参数,是得不到图像的,可以把程序改为

原程序:
IplImage* pImg; //声明IplImage指针

//载入图像
if( argc == 2 &&
(pImg = cvLoadImage( argv[1], 1)) != 0 )
{...}

修改后:
IplImage* pImg; //声明IplImage指针

char path[100]; //用于存储要显示的图像的路径
for(i=0;i<100;i++)
path[i]='\0';
printf("请输入图像路径\n");
scanf("%s",path);
if(ping=cvLoadImage( path, 1)) != 0)
{...}
来自:求助得到的回答
ling771524620
2013-02-01
知道答主
回答量:4
采纳率:0%
帮助的人:3.3万
展开全部
这个问题我问过老师了,if((pImg = cvLoadImage( "路径文件",0)) != 0 )
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式