• 大小: 17.28MB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2023-08-05
  • 语言: Html/CSS
  • 标签: 增强现实  

资源简介

适合初学的人。包含两个代码,一个独立整合起来的,注释比较清楚。另一个参照深入理解OpenCV书中第三章的代码,添加读取OBJ模型的环节,没有纹理。作为刚入手的可以参考一下,并贴一个博客地址配置环境和理解代码:http://www.cnblogs.com/Alip/p/7026512.html

资源截图

代码片段和文件信息

/*****************************************************************************
*   Markerless AR desktop application.
******************************************************************************
*   by Khvedchenia Ievgen 5th Dec 2012
*   http://computer-vision-talks.com
******************************************************************************
*   Ch3 of the book “Mastering OpenCV with Practical Computer Vision Projects“
*   Copyright Packt Publishing 2012.
*   http://www.packtpub.com/cool-projects-with-opencv/book
*****************************************************************************/

////////////////////////////////////////////////////////////////////
// File includes:
#include “ARDrawingContext.hpp“


#include 
#include “glm.h“
#include “LoadFileDlg.h“
#include “trackball.h“
#include “OpenGLDemo.h“
// The current modelview matrix
double pModelViewMatrix[16];
// The OBJ model
GLMmodel* pModel = NULL;


////////////////////////////////////////////////////////////////////
// Standard includes:
#include
#include 
#include 

void ARDrawingContextDrawCallback(void* param)
{
    ARDrawingContext * ctx = static_cast(param);
    if (ctx)
    {
        ctx->draw();
    }
}

ARDrawingContext::ARDrawingContext(std::string windowName cv::Size frameSize const CameraCalibration& c)
  : m_isTextureInitialized(false)
   m_calibration(c)
   m_windowName(windowName)
{
    // Create window with OpenGL support
    cv::namedWindow(windowName cv::WINDOW_OPENGL);

    // Resize it exactly to video size
    cv::resizeWindow(windowName frameSize.width frameSize.height);

    // Initialize OpenGL draw callback:
    cv::setOpenGlContext(windowName);
    cv::setOpenGlDrawCallback(windowName ARDrawingContextDrawCallback this);
}

ARDrawingContext::~ARDrawingContext()
{
    cv::setOpenGlDrawCallback(m_windowName 0 0);
}

void ARDrawingContext::updateBackground(const cv::Mat& frame)
{
  frame.copyTo(m_backgroundImage);
}

void ARDrawingContext::updateWindow()
{
    cv::updateWindow(m_windowName);   //更新窗口
}

void ARDrawingContext::draw()
{
  glClear(GL_DEPTH_BUFFER_BIT | GL_COLOR_BUFFER_BIT); // Clear entire screen:
  drawCameraframe();                                  // Render background
  drawAugmentedScene();                               // Draw AR
  glFlush();
}


void ARDrawingContext::drawCameraframe()
{
  // Initialize texture for background image
  if (!m_isTextureInitialized)
  {
    glGenTextures(1 &m_backgroundTextureId);
    glBindTexture(GL_TEXTURE_2D m_backgroundTextureId);

    glTexParameteri(GL_TEXTURE_2D GL_TEXTURE_MIN_FILTER GL_LINEAR);
    glTexParameteri(GL_TEXTURE_2D GL_TEXTURE_MAG_FILTER GL_LINEAR);

    m_isTextureInitialized = true;
  }

  int w = m_backgroundImage.cols;
  int h = m_backgroundImage.rows;

  glPixelStorei(GL_PACK_ALIGNMENT 1);
  glBindTexture(

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件     494316  2012-12-29 04:28  AR_Mode\AR_Mode\3.jpg

     文件       8649  2017-10-17 15:29  AR_Mode\AR_Mode\ARDrawingContext.cpp

     文件       2095  2012-12-29 04:28  AR_Mode\AR_Mode\ARDrawingContext.hpp

     文件       1354  2016-04-20 22:16  AR_Mode\AR_Mode\ARPipeline.cpp

     文件       1267  2012-12-29 04:28  AR_Mode\AR_Mode\ARPipeline.hpp

     文件       5186  2017-10-17 15:23  AR_Mode\AR_Mode\AR_Mode.vcxproj

     文件       2872  2017-09-07 09:27  AR_Mode\AR_Mode\AR_Mode.vcxproj.filters

     文件        165  2017-09-07 09:37  AR_Mode\AR_Mode\AR_Mode.vcxproj.user

     文件       2096  2012-12-29 04:28  AR_Mode\AR_Mode\CameraCalibration.cpp

     文件       1530  2012-12-29 04:28  AR_Mode\AR_Mode\CameraCalibration.hpp

     文件     241949  2017-10-17 15:23  AR_Mode\AR_Mode\Debug\ARDrawingContext.obj

     文件     321764  2017-10-17 15:23  AR_Mode\AR_Mode\Debug\ARPipeline.obj

     文件       3959  2017-10-17 15:23  AR_Mode\AR_Mode\Debug\AR_Mode.log

     文件        198  2017-10-17 15:23  AR_Mode\AR_Mode\Debug\AR_Mode.tlog\AR_Mode.lastbuildstate

     文件       9122  2017-10-17 15:23  AR_Mode\AR_Mode\Debug\AR_Mode.tlog\cl.command.1.tlog

     文件     117636  2017-10-17 15:23  AR_Mode\AR_Mode\Debug\AR_Mode.tlog\CL.read.1.tlog

     文件      12316  2017-10-17 15:23  AR_Mode\AR_Mode\Debug\AR_Mode.tlog\CL.write.1.tlog

     文件       4538  2017-10-17 15:23  AR_Mode\AR_Mode\Debug\AR_Mode.tlog\link.command.1.tlog

     文件       8716  2017-10-17 15:23  AR_Mode\AR_Mode\Debug\AR_Mode.tlog\link.read.1.tlog

     文件       2244  2017-10-17 15:23  AR_Mode\AR_Mode\Debug\AR_Mode.tlog\link.write.1.tlog

     文件     205280  2017-10-17 15:23  AR_Mode\AR_Mode\Debug\CameraCalibration.obj

     文件      17529  2017-10-17 15:23  AR_Mode\AR_Mode\Debug\GeometryTypes.obj

     文件     322666  2017-10-17 15:23  AR_Mode\AR_Mode\Debug\glm.obj

     文件      30825  2017-10-17 15:23  AR_Mode\AR_Mode\Debug\LoadFileDlg.obj

     文件     647677  2017-10-17 15:23  AR_Mode\AR_Mode\Debug\main.obj

     文件     217637  2017-10-17 15:23  AR_Mode\AR_Mode\Debug\Pattern.obj

     文件     675824  2017-10-17 15:23  AR_Mode\AR_Mode\Debug\PatternDetector.obj

     文件      28530  2017-10-17 15:23  AR_Mode\AR_Mode\Debug\trackball.obj

     文件    1461248  2017-10-17 15:23  AR_Mode\AR_Mode\Debug\vc120.idb

     文件    1798144  2017-10-17 15:23  AR_Mode\AR_Mode\Debug\vc120.pdb

............此处省略37个文件信息

评论

共有 条评论

相关资源