
为什么我用vs2010 opencv程序编通过来但是读图时出现debug error
#include"stdafx.h"#include<opencv2/opencv.hpp>usingnamespacecv;intmain(intargc,char**...
#include "stdafx.h"
#include <opencv2/opencv.hpp>
using namespace cv;
int main( int argc, char** argv )
{
IplImage* pImg; //声明IplImage指针
//载入图像,强制转化为Gray
if ( argc == 3 && (pImg = cvLoadImage( "Fruits.jpg", 0))!= 0 )
{
IplImage* pImg2 = cvCreateImage(cvGetSize(pImg),
pImg->depth,
pImg->nChannels);
cvCopy(pImg, pImg2, NULL);
cvSaveImage(argv[2], pImg2);//把图像写入文件
cvNamedWindow( "Image", 1 );//创建窗口
cvShowImage( "Image", pImg );//显示图像
cvWaitKey(0); //等待按键
cvDestroyWindow( "Image" );//销毁窗口
cvReleaseImage( &pImg ); //释放图像
cvReleaseImage( &pImg2 ); //释放图像
return 0;
}
return -1;
} 展开
#include <opencv2/opencv.hpp>
using namespace cv;
int main( int argc, char** argv )
{
IplImage* pImg; //声明IplImage指针
//载入图像,强制转化为Gray
if ( argc == 3 && (pImg = cvLoadImage( "Fruits.jpg", 0))!= 0 )
{
IplImage* pImg2 = cvCreateImage(cvGetSize(pImg),
pImg->depth,
pImg->nChannels);
cvCopy(pImg, pImg2, NULL);
cvSaveImage(argv[2], pImg2);//把图像写入文件
cvNamedWindow( "Image", 1 );//创建窗口
cvShowImage( "Image", pImg );//显示图像
cvWaitKey(0); //等待按键
cvDestroyWindow( "Image" );//销毁窗口
cvReleaseImage( &pImg ); //释放图像
cvReleaseImage( &pImg2 ); //释放图像
return 0;
}
return -1;
} 展开
展开全部
我编译过了,没有问题,我觉得关键就是那个参数的输入,
#include "stdafx.h"
#include <opencv2/opencv.hpp>
using namespace cv;
int main( int argc, char** argv )
{ IplImage* pImg; //声明IplImage指针
//载入图像,强制转化为Gray
if (argc == 3 && (pImg = cvLoadImage( argv[1],0))!= 0 )
{
IplImage* pImg2 = cvCreateImage(cvGetSize(pImg), pImg->depth, pImg->nChannels);
cvCopy(pImg, pImg2, NULL);
cvSaveImage(argv[2], pImg2);//把图像写入文件
cvNamedWindow( "Image", 1 );//创建窗口
cvShowImage( "Image", pImg );//显示图像
cvWaitKey(0); //等待按键
cvDestroyWindow( "Image" );//销毁窗口
cvReleaseImage( &pImg ); //释放图像
cvReleaseImage( &pImg2 ); //释放图像
return 0;
}
return -1;
}
在命令窗口输入三个参数,第一个参数.exe文件,第二个参数导入的图片名称,第三个参数保存的图片的名称,如果像你那样写的话,你可能就输入两个参数,而argc == 3表明要输入三个参数,argv[2]表示第三个参数,把argv[2]改为argv[1],把argc == 3改为argc==2就对了
#include "stdafx.h"
#include <opencv2/opencv.hpp>
using namespace cv;
int main( int argc, char** argv )
{ IplImage* pImg; //声明IplImage指针
//载入图像,强制转化为Gray
if (argc == 3 && (pImg = cvLoadImage( argv[1],0))!= 0 )
{
IplImage* pImg2 = cvCreateImage(cvGetSize(pImg), pImg->depth, pImg->nChannels);
cvCopy(pImg, pImg2, NULL);
cvSaveImage(argv[2], pImg2);//把图像写入文件
cvNamedWindow( "Image", 1 );//创建窗口
cvShowImage( "Image", pImg );//显示图像
cvWaitKey(0); //等待按键
cvDestroyWindow( "Image" );//销毁窗口
cvReleaseImage( &pImg ); //释放图像
cvReleaseImage( &pImg2 ); //释放图像
return 0;
}
return -1;
}
在命令窗口输入三个参数,第一个参数.exe文件,第二个参数导入的图片名称,第三个参数保存的图片的名称,如果像你那样写的话,你可能就输入两个参数,而argc == 3表明要输入三个参数,argv[2]表示第三个参数,把argv[2]改为argv[1],把argc == 3改为argc==2就对了
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这个程序过时了吧,还用argv?
我在VS2008上,你试试
#include "cv.h"
#include "highgui.h"
int main(int argc,char** argv)
{
IplImage* img = cvLoadImage("D:\\Lena.JPEG"); // Lena.JPEG"图片路径
cvNamedWindow("Lena.JPEG",CV_WINDOW_AUTOSIZE);
cvShowImage("Lena.JPEG",img);
cvWaitKey(0);
cvReleaseImage(&img);
cvDestroyWindow("Lena.JPEG");
return 0;
}
希望对你有帮助.
我在VS2008上,你试试
#include "cv.h"
#include "highgui.h"
int main(int argc,char** argv)
{
IplImage* img = cvLoadImage("D:\\Lena.JPEG"); // Lena.JPEG"图片路径
cvNamedWindow("Lena.JPEG",CV_WINDOW_AUTOSIZE);
cvShowImage("Lena.JPEG",img);
cvWaitKey(0);
cvReleaseImage(&img);
cvDestroyWindow("Lena.JPEG");
return 0;
}
希望对你有帮助.
追问
是可以编译出来,但是为什么我的程序不可以呢
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询