




已阅读5页,还剩5页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Visual C+实现视频图像处理技术前言: 随着计算机软件、硬件技术的日新月异的发展和普及,人类已经进入一个高速发展的信息化时代,人类大概有80%的信息来自图像,科学研究、技术应用中图像处理技术越来越成为不可缺少的手段。图像处理所涉及的领域有军事应用、医学诊断、工业监控、物体的自动分检识别系统等等,这些系统无不需要计算机提供实时动态,效果逼真的图像。 基于图像采集卡的视频图像处理系统计算机图像处理系统从系统层次上可分为高、中、低档三个层次,目前一般比较普及的是低档次的系统,该系统由CCD(摄像头)、图像采集卡、计算机三个部分组成,其结构简单,应用方便,效果也比较不错,得到的图像较清晰。目前网上基于VC开发经验的文章不少,可是关于如何在VC开发平台上使用图像采集卡的文章确没发现,笔者针对在科研开发中积累的使用图像采集卡经验,介绍如何自己是如何将采集卡集成到图像开发系统中,希望能够给目前正需要利用图像采集卡开发自己的图像处理系统的朋友有所帮助。笔者使用的摄像机采用台湾BENTECH INDUSTRIAL 有限公司生产的CV-155L黑白摄像机。该摄像机分辨率为752x582。图象采集卡我们采用北京中科院科技嘉公司开发的基于PCI 总线的CA-MPE 1000 黑白图象采集卡。使用图像采集卡分三步,首先安装采集卡的驱动程序,并将虚拟驱动文件VxD.vxd拷贝到Windows的SYSTEM目录下;这时候就可以进入开发状态了,进入VC开发平台,生成新的项目,由于生产厂家为图像采集卡提供了以mpew32.dll、mpew32.lib命名的库文件,库中提供了初始硬件、采集图像等函数,为使用这些函数,在新项目上连接该动态库;最后一步就是采集图像并显示处理了,这一步要设置系统调色板,因为采集卡提供的是裸图形式,既纯图像数据,没有图像的规格和调色板信息,这些需要开发者自己规定实现,下面是实现的部分代码:CTestView:CTestView()W32_Init_MPE1000();/初始化采集卡W32_Modify_Contrast(50);/下面的函数是为了对采集卡进行预设置W32_Modify_Brightness(45);/设置亮度W32_Set_HP_Value(945);/设置水平采集点数wCurrent_Frame = 1;/当前帧为1,获取的图像就是从这帧取得的/ 设置采集信号源,仅对MPE1000有效W32_Set_Input_Source(1);W32_CACardParam(AD_SETHPFREQ,hpGrabFreq);W32_Set_PAL_Range(1250, 1024);/设置水平采集范围W32_Set_VGA_Mode ( 1 );wGrabWinX1 = 0; / 采集窗口的左上角的坐标wGrabWinY1 = 0;firstTime=TRUE;bGrabMode = FRAME;bZipMode = ZIPPLE;/lpDib=NULL;/存放获取的图像数据CTestView:CTestView()W32_Close_MPE1000();/关闭采集卡/显示采集的图象,双击鼠标采集停止void CTestView:OnGraboneframe()/ TODO: Add your command handler code herewCurrent_Frame = 1;/ 设置采集目标为内存W32_CACardParam (AD_SETGRABDEST, CA_GRABMEM);/ 启动采集if (lpDib != NULL)GlobalUnlock( hglbDIB );GlobalFree( hglbDIB );/ 分配内存hglbDIB=GlobalAlloc(GHND, (DWORD)wImgWidth*(DWORD)wImgHeight );lpDib = (BYTE *)GlobalLock( hglbDIB );hdc = GetDC()-GetSafeHdc( ) ;if(lpDib != NULL)cxDib = wImgWidth;cyDib = wImgHeight;SetLogicPal( hdc, cxDib, cyDib, 8 );SetStretchBltMode (hdc, COLORONCOLOR) ;bGrabMark = TRUE;while (bGrabMark = TRUE)if(msg.message=WM_LBUTTONDBLCLK)bGrabMark = FALSE;W32_ReadXMS2Buf (wCurrent_Frame,lpDib) ;SetDIBitsToDevice (hdc, 0, 0, cxDib, cyDib, 0, 0,0, cyDib, (LPSTR) lpDib,bmi,DIB_RGB_COLORS) ;/ 停止采集W32_CAStopCapture();:ReleaseDC( GetSafeHwnd(), hdc );return ;/将下面这个函数添加在视图类的CTestView:OnSize()函数中,就可以对系统的调色板进行设置。void WINAPI InitLogicPal( HDC hdc , short width, short height, WORD bitCount )int j, i;short cxDib, cyDib;LOGPALETTE * pLogPal;j=256 ;if (pLogPal=(LOGPALETTE *)malloc(sizeof(LOGPALETTE) + (j*sizeof(PALETTEENTRY) = NULL)return ;pLogPal-palVersion=0x300;pLogPal-palNumEntries=j;for (i=0;i pLogPal-palPalEntryi.peRed = i ;pLogPal-palPalEntryi.peGreen = i ;pLogPal-palPalEntryi.peBlue = i ;pLogPal-palPalEntryi.peFlags = 0;hPal = :CreatePalette(pLogPal);delete pLogPal;:SelectPalette(hdc,hPal,0);:RealizePalette(hdc);cxDib = width; cyDib = height;if ( (bmi = (BITMAPINFO *)malloc(sizeof(BITMAPINFOHEADER) + j*sizeof(RGBQUAD) = NULL ) return ; /bmi为全局变量,用于显示图像时用bmi-bmiHeader.biSize = 40;bmi-bmiHeader.biWidth = cxDib;bmi-bmiHeader.biHeight = cyDib;bmi-bmiHeader.biPlanes = 1 ;bmi-bmiHeader.biBitCount = bitCount ;bmi-bmiHeader.biCompression = 0 ;bmi-bmiHeader.biSizeImage = 0 ;bmi-bmiHeader.biXPelsPerMeter = 0;bmi-bmiHeader.biYPelsPerMeter = 0;bmi-bmiHeader.biClrUsed = 0;bmi-bmiHeader.biClrImportant = 0;for (i=0;i bmi-bmiColorsi.rgbBlue = i ;bmi-bmiColorsi.rgbGreen = i ;bmi-bmiColorsi.rgbRed = i ;bmi-bmiColorsi.rgbReserved = 0 ;视频画中画技术 画中画这个概念类似与彩色电视机画中画,就是在一幅大的图像内显示另外一幅内容不同的小的图像,小图像的尺寸大小一般地说为大图像尺寸的1/4或1/9,显示位置在大图像的右上角。这种技术不仅在电视技术中,在可视电话系统也可以发现这种技术的身影,它们都是依靠硬件来实现的,但是如何在VC开发平台上用编程语言来将该功能添加到自己开发的视频监控软件,为使用者提供更大的信息量呢?也许读者最容易想到的是首先显示大图像,然后再在一个固定位置画第二幅小图像,这种技术技术如果对于静止图像当然没有问题,但是对于视频流,由于每一秒钟需要画25幀,即25幅图像,这样一来计算机需要不停的画不停的擦除,会给用户以闪烁的感觉,如何解决这个问题呢?有的参考书上将大小图像分快显示,这种方法要将待显示的图像数据与显示位置的关系对应起来,容易出错不说,而且麻烦,且速度慢,为此,我对该方法进行了改进,得到了满意的效果。实现的代码如下:void pictureinpicture( ) CBitmap bitmap,*oldmap;pData1=(BYTE*)new charbiWidth*biHeight *3;/biWidth和biHeight为视频采集卡获取/的图像尺寸。Read(pData1,bih.biWidth*bih.biHeight *3);/该函数从采集卡中获取数据CClientDC dc(this);m_pBMI1= new BITMAPINFO;/自定义的BMP文件信息结构,用于后面的图像显示m_pBMI1-bmiHeader.biBitCount=24;m_pBMI1-bmiHeader.biClrImportant=0;m_pBMI1-bmiHeader.biClrUsed=0;m_pBMI1-bmiHeader.biCompression=0;m_pBMI1-bmiHeader.biHeight=biHeight;m_pBMI1-bmiHeader.biPlanes=1;m_pBMI1-bmiHeader.biSize=40;m_pBMI1-bmiHeader.biSizeImage=WIDTHBYTES(biWidth*8)*biHeight*3;m_pBMI1-bmiHeader.biWidth=biWidth;m_pBMI1-bmiHeader.biXPelsPerMeter=0;m_pBMI1-bmiHeader.biYPelsPerMeter=0;/pData2=(BYTE*)new charbiWidth1*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;MemDc.CreateCompatibleDC(&dc);bitmap.CreateCompatibleBitmap(&dc,biWidth,biHeight);oldmap=MemDc.SelectObject(&bitmap);:StretchDIBits(MemDc.m_hDC,0,0,biWidth,biHeight,0,0,biWidth,biHeight,pData1,m_pBMI1,DIB_RGB_COLORS,SRCCOPY);/首先将大图像画在内寸上下文中:StretchDIBits(MemDc.m_hDC,20,20,biWidth1,biHeight1,_0,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年碳保险方向产品经理笔试指南及预测题解析
- 2025年国有企业项目经理招聘考试模拟题详解
- 桑树坪煤矿安全知识培训课件
- 2025年注册验船师资格考试(B级船舶检验专业基础安全)模拟题及答案一
- 2025年篮球考试试题及答案
- 2025年注册验船师资格考试(C级船舶检验专业能力)全真冲刺试题及答案一
- 2025年检测工程师桥隧工程考试真题(附答案)
- 2025年公务员考试国考全科目预测试题集
- 2025年地理信息系统应用实战与预测题集
- 2025年建筑装饰设计师高级实务操作指南及模拟题集
- 电力系统调度运行继电人员继电保护竞赛试题及答案汇编
- 电力行业防汛应急预案演练脚本(2篇)
- 2025 耳鼻喉科鼻息肉术后换药查房操作课件
- 航空航天检测技术
- 初级魔方社团课件
- 储油储气项目社会稳定风险评估报告
- 2024年度-职业道德的含义及特征课件
- 孩子抵抗力提升的方法与技巧
- 教学副校长给教师培训课件
- 一级建造师之一建矿业工程实务高分复习资料
- 关于股权性质与货币市场的思考
评论
0/150
提交评论