基于PC机多屏幕绘制系统——屏幕分割模块.doc

基于PC机多屏幕绘制系统——屏幕分割模块.doc

  1. 1、本文档共8页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
基于PC机多屏幕绘制系统——屏幕分割模块摘要:随着可视化技术在教学、商业、娱乐中的广泛应用,市场对于大屏幕高清晰的需求日益增强,但是由于单个显示屏幕的分辨率是有限的,而且随着分辨率的提高,系统成本呈指数级上升。因此,通过整合多个显示屏幕实现多投影显示系统(即多屏幕绘制系统)已成为构造低成本、高亮度、高分辨率显示系统的最佳方案之一。多屏幕绘制系统,由多台投影仪通过叠合拼接而成的,能够输出高亮度、高分辨率图像的大规模显示设备。与单台同样性能的显示设备相比,多屏幕绘制系统具有成本低和易扩展等优势。 关键词:多屏幕;屏幕分割;图形变换;GDI;BMP 中图分类号:TG659 文献标识码:A 文章编号:1007-9599 (2012) 09-0000-02 随着虚拟现实技术在商业、娱乐和科学计算可视化等领域中日益广泛的应用和推广,市场对投影和显示系统的分辨率和亮度都提出了更高的要求。然而,单个显示屏幕的分辨率是有限的,而且随着分辨率的提高,系统成本呈指数级上升。因此,通过整合多个显示屏幕实现多投影显示系统(即多屏幕绘制系统)已成为构造低成本、高亮度、高分辨率显示系统的最佳方案之一。传统的多投影显示系统大多是通过将多个CRT或者LCD显示屏进行硬件叠合来构建,难以实现无缝的拼接,而且不易维护和扩。 多屏幕绘制系统是通过网络互连的多台普通PC,连接多个拥有独立投影设备屏幕组合成一个巨型屏幕,投影到非平面的异形幕(如环幕、球幕)上,并通过软件的处理,将屏幕内容无缝地拼接在一起,并且实现整体画面的实时同步播放。 一、开发工具及GDI 开发工具VC++是微软公司开发的一个IDE(集成开发环境),VC++是Windows平台上的C++编程环境,Windows下编程需要了解Windows的消息机制以及回调(callback)函数的原理;MFC是Win32API的包装类,需要理解文档视图类的结构,窗口类的结构,消息流向等等;COM是代码共享的二进制标准,需要掌握其基本原理等等。 图形设备接口GDI 是Windows XP中的一个子系统,它主要负责在显示屏幕和打印设备输出有关信息,它是一组通过C 类实现的应用程序编程接口。要实现屏幕抓图,关键有两点:一是获取图片所在窗口的窗口句柄,即在何处捕获图片;二是保存抓取的图片。很显然,实现第二点正是GDI+的强项。对于问题一,可以利用SetCapture () 函数,它能够追踪鼠标指针的移动(包括在屏幕抓图程序窗口之外的窗口)。在移动鼠标的过程中,它还可以根据鼠标的指针所在位置来判断当前窗口的窗口句柄。我们还可以使用函数WindowFrom-Point (),这个函数能够找出鼠标指针当前位置所对应的窗口句柄。使用过知名的抓图软件SnagIT的读者都知道,在选择抓图窗口时,鼠标指针所在位置的窗口都会出现加粗的红色边框,以提醒目前所选择的窗口,这个功能实现起来有些复杂。 二、BMP图像文件 (一)BMP文件的读写 BMP文件分为4个组成部分,那么BMP文件的读入也要按照4个组成部分依次进行处理,即先处理BITMAPFILEHEADER结构,然后是BITMAPINFOHEADER结构、颜色表,最后是位图数据。 首先,有关BITMAPFILEHEADER、BITMAPINFOHEADER、RGBQUAD等结构的定义包含在头文件“Windows.h”中,应把其包含进来。 其次,为了后面对图像进行修改及存盘方便,我们定义了几个全局变量,用来存放读入图像的位图数据、宽、高、颜色表及每像素位数等信息。 (二)BMP图像位图数据的访问 假设内存中位图数据的指针为pBmpBuf,一行像素所占的字节数为lineByte(4的倍数)那么,对于灰度图像,第i行第j列的像素指针(所在的存储空间位置)为pBmpBuf+i*lineByte+j,*(pBmpBuf+i*lineByte+j)是该像素的灰度值,如果想让该像素变成指定颜色,只需要给*(pBmpBuf+i*lineByte+j)赋指定的值即可;对于彩色图像,每像素占3个字节,那么pBmpBuf+i*lineByte+j*3+0、pBmpBuf+i*lineByte+j*3+1、pBmpBuf+i*lineByte+j*3+2分别代表了第i行第j列像素B、G、R三个分量的指针,若想给该点指定一种颜色,则需要给三个分量分别赋值。 (三)设备无关位图(DIB) 我们介绍了BMP文件结构,实际上,BMP文件可以分为DIB格式和DDB格式。DDB格式(Device-Dependent Bitmanp)是与设备有关的BMP文件格式,用来存储与某个显示设备或打印设备内存兼容的不压缩图像,因其依赖于硬件设备,因此不常用。DIB格式(De

文档评论(0)

linsspace + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档