首 页 用户登录 | ![]() |
|||
|
|||
按字母检索 | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z |
按声母检索 | A | B | C | D | E | F | G | H | J | K | L | M | N | O | P | Q | R | S | T | W | X | Y | Z | 数字 | 符号 |
|
![]() |
您的位置: 5VAR论文频道 → 论文中心 → 计算机论文 → 计算机网络 |
|
|||||
计算机图像处理技术 | |||||
收集整理:佚名 来源:本站整理 时间:2009-01-10 10:09:40 点击数:[] ![]() |
|||||
elsPerMeter = 0; for (i=0;i bmi->bmiColors[i].rgbBlue = i ;
"画中画"这个概念类似与彩色电视机"画中画",就是在一幅大的图像内显示另外一幅内容不同的小的图像,小图像的尺寸大小一般地说为大图像尺寸的1/4或1/9,显示位置在大图像的右上角。这种技术不仅在电视技术中,在可视电话系统也可以发现这种技术的身影,它们都是依靠硬件来实现的,但是如何在VC开发平台上用编程语言来将该功能添加到自己开发的视频监控软件,为使用者提供更大的信息量呢?也许读者最容易想到的是首先显示大图像,然后再在一个固定位置画第二幅小图像,这种技术技术如果对于静止图像当然没有问题,但是对于视频流,由于每一秒钟需要画25幀,即25幅图像,这样一来计算机需要不停的画不停的擦除,会给用户以闪烁的感觉,如何解决这个问题呢?有的参考书上将大小图像分快显示,这种方法要将待显示的图像数据与显示位置的关系对应起来,容易出错不说,而且麻烦,且速度慢,为此,我对该方法进行了改进,得到了满意的效果。实现的代码如下: void pictureinpicture( ) ; m_pBMI1->bmiHeader.biXPelsPerMeter=0; m_pBMI1->bmiHeader.biYPelsPerMeter=0; //////////////////////////////////////////////////////////////////////// pData2=(BYTE*)new char[biWidth1*biHeight1 *3];//申请存放小图像的缓冲区 Read(pData2,biWidth1*biHeight1 *3);////向该缓冲区读数据 m_pBMI2= new BITMAPINFO; m_pBMI2->bmiHeader.biBitCount=24; m_pBMI2->bmiHeader.biClrImportant=0; m_pBMI2->bmiHeader.biClrUsed=0; m_pBMI2->bmiHeader.biCompression=0; m_pBMI2->bmiHeader.biHeight=biHeight1; m_pBMI2->bmiHeader.biPlanes=1; m_pBMI2->bmiHeader.biSize=40; m_pBMI2->bmiHeader.biSizeImage=WIDTHBYTES(biWidth1*8)*biHeight1*3; m_pBMI2->bmiHeader.biWidth=biWidth1; m_pBMI2->bmiHeader.biXPelsPerMeter=0; m_pBMI2->bmiHeader.biYPelsPerMeter=0; //下面实现画中画的显示 CDC MemDc; ::StretchDIBits(MemDc.m_hDC,20,20,biWidth1,biHeight1,_ ::StretchBlt(dc.m_hDC,0,0,bih.biWidth,bih.biHeight,_ MemDc.SelectObject(oldmap); }
Tags: |
提供人:佚名 | |
【返回上一页】【打 印】【关闭窗口】 |
![]() |
5VAR论文频道 |
![]() |
5VAR论文频道 |
最新热点 | 最新推荐 | 相关新闻 | ||
|
|
![]() |
关于本站 -
网站帮助 -
广告合作 -
下载声明 -
网站地图
Copyright © 2006-2033 5Var.Com. All Rights Reserved . |