zoukankan      html  css  js  c++  java
  • 【AR实验室】mulberryAR :添加连续图像作为输入

    本文转载请注明出处 —— polobymulberry-博客园

    0x00 - 前言


    之前mulberryAR只能利用手机相机实时捕捉图像作为系统的输入,这也比较符合用户的习惯。但是在开发的过程中,有时候想对比两种方法的优劣,看看性能优化的程度,那么作为输入应该保证一致才可以。而实时捕捉的图像可能无法满足这样的要求,所以添加了连续图像录制和连续图像作为系统输入的功能。功能本身实现起来不是很麻烦。

    0x01 - 功能实现


    1.图像录制功能

    第一步,获取图片的存储位置。在app的Documents文件夹新建一个Test文件夹,每一帧图像按照存储的顺序命名为0000.png、0001.png…

    第二步,将图像存储为png格式。使用cv::imwrite函数将需要存储的cv::Mat对象存储到本地。

    // 将图片压缩为png格式,压缩等级为0,。压缩等级越高,压缩程度越大,时间越长
    std::vector<int> compressParams;
    compressParams.push_back(CV_IMWRITE_PNG_COMPRESSION);
    compressParams.push_back(0);
    // recordImageFilePath为每帧图像存储的绝对路径
    cv::imwrite([recordImageFilePath cStringUsingEncoding:NSUTF8StringEncoding], _imgMat, compressParams);

    2.连续图像作为输入

    第一步,获取本地存储的图像。根据png图片名称中的数字大小依次使用cv::imread函数获取图像作为输入。

    第二步,将解析的图像作为输入。整个流程和实时捕捉图像的流程一致。

    0x02 - 效果展示


    选择具体功能。1.实时捕捉 2.录制视频 3.视频文件(通过录制的视频作为输入)

    IMG_3622

    分别为上述三种功能效果图:

    1.实施捕捉

    IMG_3623

    2.录制视频

    IMG_3624

    3.视频文件(通过录制的视频作为输入)

    IMG_3627

  • 相关阅读:
    windows server 2019安装
    python 求相关系数
    MySQL的Sleep进程占用大量连接解决方法
    mysql show processlist分析
    mysql5.6常用查询sql
    使用exe4j将java项目打成exe执行程序
    MediaWIKI部署流程
    谈谈Activiti中流程对象之间的关系
    EhCache RMI 分布式缓存/缓存集群
    Tomcat8安装, 安全配置与性能优化
  • 原文地址:https://www.cnblogs.com/polobymulberry/p/6269059.html
Copyright © 2011-2022 走看看