基于标记的AR的OpenCV实现:动态视频输入

本文介绍如何修改基于标记的AR OpenCV实现,以处理摄像头视频流图像的动态检测和实时增强。虽然在标记未被遮挡时能实现良好的实时效果,但只要标记部分被遮挡,检测就会失败。程序主要通过修改display()函数,添加图像数据更新和标记检测,实现了自我触发的连续显示。完整代码已上传供下载。
摘要由CSDN通过智能技术生成

我的上篇博客《基于标记的AR的OpenCV实现》实现的是单幅图片的标记检测和增强现实,稍微改动了程序实现了摄像头视频流图像的动态检测和实时增强,经测试,

实时性不错,在标记不被遮挡的情况下,绘制的虚拟模型和实时与检测标记结合,但标记只要有被遮挡一少部分,标记就检测失败。

以下讲下程序修改部分。

1:show函数并没有修改,但还是讲一下程序流程,首先在main()函数中调用show()函数后,在show()函数中,首先完成一些显示参数的初始化,这部分只需执行一次即可,然后将图像数据读入pixeldata中,之后通过glutDisplayFunc(&display)调用display()函数进行显示但请注意,display()函数只会执行一次。glutMainLoop进入GLUT事件处理循环。在一个GLUT程序中,这个例程被调用一次 。一旦被调用,这个程序将永远不会返回 。它将调用必要的任何已注册的回调

int show(const char* filename,int argc, char** argv,Mat_<float>& cameraMatrix, vector<Marker>& detectedMarkers)  
{  
    //打开文件  
    FILE* pfile=fopen(filename,"rb");  
    if(pfile == 0) exit(0);  
    //读取图像大小  
    fseek(pfile,0x0012,SEEK_SET);  
    fread(&imagewidth,sizeof
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值