ImageVerifierCode 换一换
格式:DOC , 页数:10 ,大小:33.50KB ,
资源ID:11825086      下载积分:10 金币
快捷注册下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/11825086.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

开通VIP折扣优惠下载文档

            查看会员权益                  [ 下载后找不到文档?]

填表反馈(24小时):  下载求助     关注领币    退款申请

开具发票请登录PC端进行申请

   平台协调中心        【在线客服】        免费申请共赢上传

权利声明

1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。

注意事项

本文(Visual-C--实现视频图像处理技术.doc)为本站上传会员【仙人****88】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4009-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

Visual-C--实现视频图像处理技术.doc

1、Visual C++实现视频图像处理技术 [前言:] 随着计算机软件、硬件技术的日新月异的发展和普及,人类已经进入一个高速发展的信息化时代,人类大概有80%的信息来自图像,科学研究、技术应用中图像处理技术越来越成为不可缺少的手段。图像处理所涉及的领域有军事应用、医学诊断、工业监控、物体的自动分检识别系统等等,这些系统无不需要计算机提供实时动态,效果逼真的图像。   基于图像采集卡的视频图像处理系统   计算机图像处理系统从系统层次上可分为高、中、低档三个层次,目前一般比较普及的是低档次的系统,该系统由CCD(摄像头)、图像采集卡、计算机三个部分组成,其结构简单,应用方便,效果也比较

2、不错,得到的图像较清晰。目前网上基于VC开发经验的文章不少,可是关于如何在VC开发平台上使用图像采集卡的文章确没发现,笔者针对在科研开发中积累的使用图像采集卡经验,介绍如何自己是如何将采集卡集成到图像开发系统中,希望能够给目前正需要利用图像采集卡开发自己的图像处理系统的朋友有所帮助。   笔者使用的摄像机采用台湾BENTECH INDUSTRIAL 有限公司生产的CV-155L黑白摄像机。该摄像机分辨率为752x582。图象采集卡我们采用北京中科院科技嘉公司开发的基于PCI 总线的CA-MPE 1000 黑白图象采集卡。使用图像采集卡分三步,首先安装采集卡的驱动程序,并将虚拟驱动文件Vx

3、D.vxd拷贝到Windows的SYSTEM目录下;这时候就可以进入开发状态了,进入VC开发平台,生成新的项目,由于生产厂家为图像采集卡提供了以mpew32.dll、mpew32.lib命名的库文件,库中提供了初始硬件、采集图像等函数,为使用这些函数,在新项目上连接该动态库;最后一步就是采集图像并显示处理了,这一步要设置系统调色板,因为采集卡提供的是裸图形式,既纯图像数据,没有图像的规格和调色板信息,这些需要开发者自己规定实现,下面是实现的部分代码: CTestView::CTestView() { W32_Init_MPE1000();//初始化采集卡 W32_Modify_Co

4、ntrast(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 );

5、 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 he

6、re wCurrent_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()->

7、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,lpD

8、ib) ; 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, s

9、hort 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->palPalEntry[i].peRed = i

10、 ; pLogPal->palPalEntry[i].peGreen = i ; pLogPal->palPalEntry[i].peBlue = i ; pLogPal->palPalEntry[i].peFlags = 0; } hPal = ::CreatePalette(pLogPal); delete pLogPal; ::SelectPalette(hdc,hPal,0); ::RealizePalette(hdc); cxDib = width; cyDib = height; if ( (bmi = (BITMAPINFO *)malloc(sizeof(B

11、ITMAPINFOHEADER) + 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

12、biSizeImage = 0 ; bmi->bmiHeader.biXPelsPerMeter = 0; bmi->bmiHeader.biYPelsPerMeter = 0; bmi->bmiHeader.biClrUsed = 0; bmi->bmiHeader.biClrImportant = 0; for (i=0;i bmi->bmiColors[i].rgbBlue = i ; bmi->bmiColors[i].rgbGreen = i ; bmi->bmiColors[i].rgbRed = i ; bmi->bmiColors[i].rgbReserved

13、 = 0 ; }   } 视频"画中画"技术     "画中画"这个概念类似与彩色电视机"画中画",就是在一幅大的图像内显示另外一幅内容不同的小的图像,小图像的尺寸大小一般地说为大图像尺寸的1/4或1/9,显示位置在大图像的右上角。这种技术不仅在电视技术中,在可视电话系统也可以发现这种技术的身影,它们都是依靠硬件来实现的,但是如何在VC开发平台上用编程语言来将该功能添加到自己开发的视频监控软件,为使用者提供更大的信息量呢?也许读者最容易想到的是首先显示大图像,然后再在一个固定位置画第二幅小图像,这种技术技术如果对于静止图像当然没有问题,但是对于视频流,由于每一秒钟需要画25幀,即

14、25幅图像,这样一来计算机需要不停的画不停的擦除,会给用户以闪烁的感觉,如何解决这个问题呢?有的参考书上将大小图像分快显示,这种方法要将待显示的图像数据与显示位置的关系对应起来,容易出错不说,而且麻烦,且速度慢,为此,我对该方法进行了改进,得到了满意的效果。实现的代码如下: void pictureinpicture( ){ CBitmap bitmap,*oldmap; pData1=(BYTE*)new char[biWidth*biHeight *3];//biWidth和biHeight为视频采集卡获取//的图像尺寸。 Read(pData1,bih.biWidth*bih.

15、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->bmiHeade

16、r.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; ////////////////////////////////////////////////////////////////////////

17、 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.b

18、iHeight=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.C

19、reateCompatibleDC(&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,_

20、 0,0,biWidth1,biHeight1,pData2,m_pBMI2,DIB_RGB_COLORS,SRCCOPY);//再将小图像画在内寸上下文中 ::StretchBlt(dc.m_hDC,0,0,bih.biWidth,bih.biHeight,_ MemDc.m_hDC,0,0,bih.biWidth,bih.biHeight,SRCCOPY);//将结果显示在屏幕上。 MemDc.SelectObject(oldmap); delete pData1; delete m_pBMI1; delete pData2; delete m_pBMI2; }

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服