OpenCV学习体会(1)

现在自学OpenCV,当执行网上提供的以下源码时:

//缩放图像文件
//By MoreWindows (http://blog.csdn.net/MoreWindows)
#include <opencv2/opencv.hpp>
using namespace std;
//隐藏控制台窗口
#pragma comment(linker, "/subsystem:\"windows\" /entry:\"mainCRTStartup\"")
int main()
{
	const char *pstrImageName = "冲浪大师赛001.jpg";
	const char *pstrSaveImageName = "冲浪大师赛001缩放图.jpg";
	const char *pstrWindowsSrcTitle = "原图 (http://blog.csdn.net/MoreWindows)";
	const char *pstrWindowsDstTitle = "缩放图 (http://blog.csdn.net/MoreWindows)";
	
	double fScale = 0.314;		//缩放倍数
	CvSize czSize;			    //目标图像尺寸
	
	//从文件中读取图像  
	IplImage *pSrcImage = cvLoadImage(pstrImageName, CV_LOAD_IMAGE_UNCHANGED);
	IplImage *pDstImage = NULL;	
	
	//计算目标图像大小
	czSize.width = pSrcImage->width * fScale;
	czSize.height = pSrcImage->height * fScale;
	
	//创建图像并缩放
	pDstImage = cvCreateImage(czSize, pSrcImage->depth, pSrcImage->nChannels);
	cvResize(pSrcImage, pDstImage, CV_INTER_AREA);
	
	//创建窗口
	cvNamedWindow(pstrWindowsSrcTitle, CV_WINDOW_AUTOSIZE);
	cvNamedWindow(pstrWindowsDstTitle, CV_WINDOW_AUTOSIZE);
	
	//在指定窗口中显示图像
	cvShowImage(pstrWindowsSrcTitle, pSrcImage);
	cvShowImage(pstrWindowsDstTitle, pDstImage);
	
	//等待按键事件
	cvWaitKey();
	
	//保存图片
	cvSaveImage(pstrSaveImageName, pDstImage);
	
	cvDestroyWindow(pstrWindowsSrcTitle);
	cvDestroyWindow(pstrWindowsDstTitle);
	cvReleaseImage(&pSrcImage);
	cvReleaseImage(&pDstImage);
	return 0;
}

 

会出现一种情况,就是在VS2008下编译完全没有问题,但当在VS2008下运行时会出现错误!在命令提示符下以“程序名+图片名称”运行完成没有问题!

经过调试发现是cvLoadImage载入图片时出错,个人认为应该是图片路径的问题。查了网上的资料,解决方案很少。

最终自己把图片改为绝对路径,运行顺利通过!!

具体改法为: const char *pstrImageName = "d:\\冲浪大师赛001.jpg";

Oh,my ladygaga!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值