Overview

Image viewer is a typical application for large display. It makes use of the high-resolution large display and lead to more efficient way for viewing images. Image viewer utilizes the output of the calibration phase (geometric result file and alpha masks), makes the necessary geometric and photometric correction and shows the resulted image on the multi-projector display. With the benefit of the much larger display area and higher resolution, uses can see both the overall picture and details at the same time.

Algorithms

In order to display the image on the multi-projector based large display, the input image texture shown on every projector need to be warped according to the calibration result. This includes geometric correction and photometric correction. The details of the algorithms are introduced below.

    For geometric correction, we use what we called Piecewise-Linear Methods. The basic idea is to apply a piecewise-linear mapping of the projector coordinates to camera coordinates. The tessellation is implemented using standard Delaunay triangulation. The geometric correction is implemented using bilinear interpolation of these mappings at the vertices of the triangles. This method needs minimum calculation and only need to apply interpolation triangle-by-triangle to the corresponding tessellated mesh in the projectors coordinate space. The final result is a geometrically correct image in the camera's view (or in the view of the person who stand at the spot of the camera). The algorithm is also very robust and can apply to curved surface or even corner of the wall. For a more specific explanation, please refer to Chapter 3.3.4 of Reference [1].

    For photometric correction, we use the blending techniques to address overlapped regions and try to smooth color transitions across different projectors. The smooth transitions can be achieved by using a linear or cosine ramp, which attenuates pixel intensities in the overlapped region. For one pixel in the overlapped area, the more it near the boundary of the projector, the less the intensity of this pixel in the projector will be. In order to control the intensity of each pixel, we generate an alpha map for each projector in the calibration stage. The generation of alpha map follows these steps: first, we identify the display area each projector occupied in the camera image; then we calculate the distance transform image for each projector; next, we use the value of the distance transform image as weight and normalize it to 0~255. We save this normalized image as alpha image. During the photometric correction, each of the pixels to be shown will use this alpha image as an alpha mask. A gamma corrrection may also apply. For a more specific explanation, please refer to Chapter 4.4.3 of Reference [1].

Download

Please go to the downloadpage.

How to use the code

Before you start, you should first choose the configuration you would like to adopt according to your intention and available hardware. We provided codes for multi-projector multi-PC configuration and multi-projector single-PC configuration. Below are the step-by-step instructions about how to use the code.

Multi-Projector Multi-PC Configuration:

  1. Download the corresponding binary package named ImageClient (control client running on master PC) and ImageServer (render server running on render PC) from the above "Download" Section;
  2. Connect the PCs and projectors as showed in Figure 3 except not necessary to connect the camera;
  3. Copy the calibration result file (result2x2.txt), alpha image (Px.bmp) and the demo images to the working directory of all the render servers;
  4. Run the following program on all the rendering PCs from command line with:
    ImageServer.exe
  5. Modify the configuration file named Client4.cfg according to your actual configuration (IP address, port, gamma, etc);
  6. Run the control client program on the master PC from command line with:
    ImageClient.exe Client4.cfg demo1.bmp
  7. If everything goes well, you will see the image demo1.bmp showing on the large display correctly;
  8. You can use mouse and keyboard to zoom in/zoom out, change the position and so on, please see the command line help of the program.

Multi-Projector Single-PC Configuration:

  1. Download the corresponding binary package named MMonImageViewer from the above "Download" Section;
  2. Connect the PCs and projectors as showed in Figure 4 except not necessary to connect the camera;
  3. Make sure that you have multiple graphics cards installed properly;
  4. From the desktop of your Windows XP, go to "Right-Click->Properties->Settings", enable all the monitors connected by select the "Extend my Windows desktop onto this monitor" check box; Make sure the top left projector is set as primary display and drag the monitor icons to match the physical arrangement;
  5. Copy the calibration result file (result2x2.txt), alpha image (Px.bmp) and the demo images to the working directory of the PC;
  6. Run the following program on the PC from command line with:
    MMonImageViewer.exe Client4.cfg demo1.bmp
  7. If everything goes well, you will see the image named demo1.bmp showing on the large display correctly;
  8. You can use mouse and keyboard to zoom in/zoom out, change the position and so on, please see the command line help of the program.

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

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

    Overview This project provides you with the tools and techniques you need to create your own large-a ...

  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 ---- ModelViewer

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

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

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

  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. C++设计模式——命令模式

    什么是命令模式? 在GOF的<设计模式:可复用面向对象软件的基础>一书中对命令模式是这样说的:将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化:对请求排队或记录请求日志,以 ...

  2. 【easy】110. Balanced Binary Tree判断二叉树是否平衡

    判断二叉树是否平衡 a height-balanced binary tree is defined as a binary tree in which the depth of the two su ...

  3. 解决前后端分离后的Cookie跨域问题

    一. 前端Ajax关键配置 $.ajax({ type: "post", url: xxx, data: xxx, contentType: 'application/json', ...

  4. Django学习笔记(http协议与django安装)

    Django入门 HTTP协议 HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于万维网(WWW:World Wide Web )服务器与本地浏览器 ...

  5. 关于读取excel 和 写excel

        def sync_db(data_list): '''Synchron potential student from excel to PrepareToCrm ''' push_list = ...

  6. jquery 第一章

    1.本章目标    了解jquery    了解jquery和js的区别    掌握jquery的入门    掌握jquery对象和dom对象的区别2.jquery简介    jquery是一个轻量级 ...

  7. 金蝶k/3 现金流量表编制口诀

    现金流量表编制口诀 现金流量表是会计考试中十分令人头疼的内容,丢三落四是现金流量表编制中最容易出现的错误.下面的口诀基本上概括了现金流量表的全部编制过程.口诀的具体内容如何理解,我们在口诀后边详细阐述 ...

  8. 金蝶K/3 固定置产相关SQL语句

    金蝶K/3 固定置产相关SQL语句 select * from vw_fa_card --固定置产打印原始数据 select FAssetID,FAssetNumber,FAssetName,FGro ...

  9. hibernate 保存报错 Hibernate operation: could not get next sequence value;

    错误信息: [2017-09-28 18:51:38,854]-[org.hibernate.util.JDBCExceptionReporter:101] ERROR - Numeric Overf ...

  10. 【Android】自动测试工具 Monkey

    前言: 最近开始研究Android自动化测试方法,对其中的一些工具.方法和框架做了一些简单的整理,其中包括android测试框架.CTS.Monkey.Monkeyrunner.benchmark.其 ...