初学者: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!以外什么都没有!
你好,这个问题是你在三年前碰到的,请问你是怎么解决的,非常感谢。 展开
我把一张名为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!以外什么都没有!
你好,这个问题是你在三年前碰到的,请问你是怎么解决的,非常感谢。 展开
2个回答
展开全部
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)
{...}
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)
{...}
来自:求助得到的回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询