Overview

This project provides you with the tools and techniques you need to create your own large-area multi-projector display that is both affordable and flexible. It covers the procedure you need to take and the issues you need to consider for achieving geometric alignment and color seamlessness, and an image rendering system using PC clusters. It also provides the necessary codes of a simple distributed calibration and image/3D-model rendering display system.

Who should use this code

  • Novice who would like to build their own camera-projector display system can use this code as a start point
  • Researchers who are interested in camera-projector display system can use this code as a reference

System Architecture

With the recent popularization of low-cost commodity graphics cards, it is possible to build a distributed rendering system with a cluster of PCs. The following figure shows the architecture of our PC-cluster based multi-projector display:

Figure 1. The system architecture of our PC-Cluster based multi-projector display

As you can see from the above picture, the system consist of one master PC and a few rendering PCs. Each rendering PC is connected to one projector. All the PCs are connected via a local network. The master PC controls the rendering procedure of the system, and the rendering PCs do the actual rendering work and output through the projectors. The overall goal is to make the casually placed projectors behave like a large integrated display when showing images and other scenes.

    The scene resources are preloaded to the rendering PCs and each PC will only show its own portion according to prior calibration, as shown in the figure. Because the projectors are casually placed, the scene from different projectors may not be well aligned, and the overlapped area of two or more projectors may looks brighter than other area. So the rendering PCs need to warp the scene to achieve geometry alignment and color seamlessness. The basic procedure of the PC-Cluster based display system involves two steps: the camera-based calibration step and the scene warping step. During the calibration step, special featured images are projected and corresponding camera images are grabbed. After analysis of the grabbed images, geometry information about how to warp the scene and alpha mask about how to achieve photometric alignment will be atomatically generate. During the scene warping step, each projector will warp the scene resources according to the calibration result.

You can find more information about geometry alignment from Chapter 3 of reference [1], about color seamlessness from Chapter 4 of reference [1], about PC-Cluster rendering from Chapter 5 of reference [1]. You are strongly recommended to read the book thoroughly before starting to set up your own multi-projector display.

Hardware and Software Requirements

In order to use the codes provided, you need to meet the following hardware and software requirements:

Hardware requirements:

  • One PC with monitors, as master PC;
  • Two or more PCs with dedicated graphic cards (we use NVIDIA GeForce 8800GTS), as rendering PC;
  • Two or more projectors (one for each rendering PC);
  • One hub or router and network cables;
  • One OpenCV-compatible camera with proper lens (see FAQ for more information about how to select camera and lens);

Software requirements:

  • Windows XP installed on all PCs;

    (Below are the additional software you need to install if you want to compile the source codes yourself)

  • Microsoft Visual Studio 2005 or above;
  • OpenCV library 1.0 (from reference [2]) installed;
  • GLUT library 3.7 (from reference [3]) installed;
  • FreeImage Algorithms (from reference [4]) installed;

Reference

  [1] "Practical Multi-Projector Display Design", Majumder/Brown, AK Peters, USA, 2007
  [2] Open Computer Vision Library, 1.0:
http://sourceforge.net/projects/opencvlibrary/
  [3] GLUT - The OpenGL Utility Toolkit, 3.7: http://www.opengl.org/resources/libraries/glut/
  [4] FreeImage Algorithms Library: https://code.launchpad.net/~glennpierce/+junk/main

View this page in Romanian courtesy ofazoft

Multi-Projector Based Display Code ------- Home的更多相关文章

  1. Multi-Projector Based Display Code ---- ImageViewer

    Overview Image viewer is a typical application for large display. It makes use of the high-resolutio ...

  2. Multi-Projector Based Display Code ---- FAQ

    Frequently Asked Question How do I know that my camera has a proper lens? Answer: If you can see exa ...

  3. Multi-Projector Based Display Code ---- Calibration

    Overview As mentioned previously, there are two main steps in generating a seamless display. The fir ...

  4. Multi-Projector Based Display Code ---- ModelViewer

    Overview Model viewer is another application we provided for large display. It is designed for viewi ...

  5. Multi-Projector Based Display Code ---- Download

    The code providing are for your reference. Please download the code according to your hareware confi ...

  6. Peer Code Reviews Made Easy with Eclipse Plug-In

    欢迎关注我的社交账号: 博客园地址: http://www.cnblogs.com/jiangxinnju/p/4781259.html GitHub地址: https://github.com/ji ...

  7. Code Pages

    https://docs.microsoft.com/en-us/windows/desktop/intl/code-pages Most applications written today han ...

  8. 设备管理 USB ID

    发现个USB ID站点,对于做设备管理识别的小伙伴特别实用 http://www.linux-usb.org/usb.ids 附录: # # List of USB ID's # # Maintain ...

  9. Oracle Database 11g express edition

    commands : show sys connect sys as sysdba or connect system as sysdba logout or disc clear screen or ...

随机推荐

  1. 第五节,python基本语法

    1.类(Class) Python中的类的概念与其它语言类似,比较特殊的是protected和private在python中没有明确的限制,通常的惯例是用单下划线_表示protected,用双下划线开 ...

  2. 【原创】大数据基础之Hadoop(3)yarn数据收集与监控

    yarn常用rest api 1 metrics # curl http://localhost:8088/ws/v1/cluster/metrics The cluster metrics reso ...

  3. 【自然语言处理】LDA

    飞机票 飞机票 步骤: 1. 离线求的模型 2. 用模型对新文本预测topic,取topic概率带到阈值(例如0.2)且topN个topic,例如doc1 :topic1:0.5, topic2:0. ...

  4. C语言经典题目

    回顾一下吧: 一. 有1.2.3.4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少? 解析:可填在百位.十位.个位的数字都是1.2.3.4.组成所有的排列后再去 掉不满足条件的排列. 常规 ...

  5. SpringBoot webmvc项目导出war包并在外部tomcat运行产生的诸多问题以及解决方案

    背景: 有需求要将原来的Spring(3.2.6) + Springmvc + Hibernate项目重构为Springboot(1.5.2)项目 描述: 记录重构过程,以及期间遇到的种种问题和对应的 ...

  6. 办公用品管理系统VB——库存数量导出EXCEL,SaveEXCEL

    办公用品管理系统VB——库存数量导出EXCEL,SaveEXCEL 总体来说,VB的EXCEL导出效率还是蛮低的,就是一个小型化的办公用品管理软件,不再优化了. 时间紧迫,就没有从头到尾的用C#编写, ...

  7. SQL允许脏读WITH(NOLOCK)

    使用WIHT(NOLOCK)有利也有弊,所以在决定使用之前,你一定需要了解清楚WITH(NOLOCK)的功能和缺陷,看其是否适合你的业务需求,不要觉得它能提升性能,稀里糊涂的就使用它. --事务未提交 ...

  8. js分析 邮箱地址加密 [email protected]

    0.参考 https://segmentfault.com/q/1010000000117476 javascript里function之前加上感叹号 ' ! ' 会怎么样? // 这么写会报错,因为 ...

  9. Monolog手册参考

    https://api.kdyby.org/namespace-Monolog.Handler.html

  10. ISP PIPLINE (六) 3A 综述

    前言: 上一篇文章: ISP PIPLINE (五) Denoise 下一篇文章: (1)3A定义包括什么 Iris:自动光圈,根据环境自动调节光圈. 既然讲到光圈,就先看一下光圈是什么,以及它如何影 ...