- 1、本文档共59页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
学习Opencv课后习题答案
利用Microsoft Visual Studio 2010打开D:\OpenCV2.1\VS2010\ OpenCV.sln文件,如图1示。在“Solution Configuration”下选择“Debug”模式,右击解决方案,选择“Build Solution”进行编译,编译结束后结果显示如图2示。再次右击文件“INSTALL”,选择“Rebuild Solution”进行再编译,编译后结果显示如图3示。同理,“Release”模式和“Debug”模式操作相同(示图略)。这样就产生了“Debug”和“Release”两个版本的库文件。
图1 载入解决方案OpenCV.sln
图2 编译解决方案
图3 再编译INSTALL
2.2创建工程:Move实验,导入文件lkdemo.c,如图4示。在PC机上安装摄像头,编译
工程,运行程序如图5示。键入“r”后显示图像如图6示;键入“n”后显示图像如图7示。
图4 创建工程
图5 运行程序结果显示
图6 跟踪初始化显示
图7 夜间模式跟踪
2.3
#include cv.h
#include highgui.h
IplImage *DoPyDown(IplImage *in,int fliter = IPL_GAUSSIAN_5x5);
main(int argc, char **argv)
{
CvCapture * capture = 0;
//创建窗口,显示缩放前的文件
cvNamedWindow(AVI_Example,1);
//创建窗口,显示缩放后的文件
cvNamedWindow(AVI_After);
//选择是从摄像头中读取还是从文件中读取
if(argc==1)
{
capture = cvCreateCameraCapture(0);
}
else
{
capture = cvCreateFileCapture(m.avi);
}
assert(capture!=NULL);//和下一句if作用相同
if (!capture)
{
return -1;
}
IplImage* bgr_frame = cvQueryFrame(capture);
double fps = cvGetCaptureProperty(capture,CV_CAP_PROP_FPS);
//得到要写入视频的宽高数据
CvSize size = cvSize(((int)cvGetCaptureProperty(capture, CV_CAP_PROP_FRAME_WIDTH))/2,
((int)cvGetCaptureProperty(capture, CV_CAP_PROP_FRAME_HEIGHT))/2
);
//下一句创建一个写入设备以便将视频流写入视频文件
CvVideoWriter* writer = cvCreateVideoWriter(lgc.avi,-1,fps,size);
IplImage* OutImage;
IplImage* logpolar_frame = cvCreateImage(size,IPL_DEPTH_8U,3);
//判断逐帧读取是否为空(是否读完)
while((bgr_frame=cvQueryFrame(capture))!=NULL)
{
//对视频进行转换,用此函数后录制的文件变形
cvLogPolar(bgr_frame, logpolar_frame,
cvPoint2D32f(bgr_frame-width/2,bgr_frame-height/2),
40,CV_INTER_LINEAR+CV_WARP_FILL_OUTLIERS
);
OutImage = DoPyDown(bgr_frame);
//对图像进行翻转
cvConvertImage(OutImage,OutImage,CV_CVTIMG_FLIP);
//将处理后的视频写入文件
cvWriteFrame(writer,OutImage);
//显示视频
cvShowImage(AVI_Example,bgr_frame);
//显示缩放后的视频
cvShowImage(AVI_After,OutImage/*logpolar_frame*/);
//等待键盘事件
char c=cvWaitKey(1);
if (27==c)
{
br
文档评论(0)