![计算机图像处理技术_第1页](http://file3.renrendoc.com/fileroot_temp3/2021-12/20/18ddd0d5-8729-4bd4-940e-3394f508ab09/18ddd0d5-8729-4bd4-940e-3394f508ab091.gif)
![计算机图像处理技术_第2页](http://file3.renrendoc.com/fileroot_temp3/2021-12/20/18ddd0d5-8729-4bd4-940e-3394f508ab09/18ddd0d5-8729-4bd4-940e-3394f508ab092.gif)
![计算机图像处理技术_第3页](http://file3.renrendoc.com/fileroot_temp3/2021-12/20/18ddd0d5-8729-4bd4-940e-3394f508ab09/18ddd0d5-8729-4bd4-940e-3394f508ab093.gif)
![计算机图像处理技术_第4页](http://file3.renrendoc.com/fileroot_temp3/2021-12/20/18ddd0d5-8729-4bd4-940e-3394f508ab09/18ddd0d5-8729-4bd4-940e-3394f508ab094.gif)
![计算机图像处理技术_第5页](http://file3.renrendoc.com/fileroot_temp3/2021-12/20/18ddd0d5-8729-4bd4-940e-3394f508ab09/18ddd0d5-8729-4bd4-940e-3394f508ab095.gif)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、计算机图像处理技术 前言:随着计算机软件、硬件技术的日新月异的发展和普及,人类已经进入一个高速发展的信息化时代,人类大概有80%的信息来自图像,科学研究、技术应用中图像处理技术越来越成为不可缺少的手段。图像处理所涉及的领域有军事应用、医学诊断、工业监控、物体的自动分检识别系统等等,这些系统无不需要计算机提供实时动态,效果逼真的图像。 基于图像采集卡的视频图像处理系统计算机图像处理系统从系统层次上可分为高、中、低档三个层次,目前一般比较普及的是低档次的系统,该系统由CCD(摄像头)、图像采集卡、计算机三个部分组成,其结构简单,应用方便,效果也比较不错,得到的图像较清晰。目前网上基于VC开发经验的
2、文章不少,可是关于如何在VC开发平台上使用图像采集卡的文章确没发现,笔者针对在科研开发中积累的使用图像采集卡经验,介绍如何自己是如何将采集卡集成到图像开发系统中,希望能够给目前正需要利用图像采集卡开发自己的图像处理系统的朋友有所帮助。使用的摄像机采用台湾BENTECH INDUSTRIAL 有限公司生产的CV-155L黑白摄像机。该摄像机分辨率为752x582。图象采集卡我们采用北京中科院科技嘉公司开发的基于PCI 总线的CA-MPE 1000 黑白图象采集卡。使用图像采集卡分三步,首先安装采集卡的驱动程序,并将虚拟驱动文件VxD.vxd拷贝到Windows的SYSTEM目录下;这时候就可以进
3、入开发状态了,进入VC开发平台,生成新的项目,由于生产厂家为图像采集卡提供了以mpew32.dll、mpew32.lib命名的库文件,库中提供了初始硬件、采集图像等函数,为使用这些函数,在新项目上连接该动态库;最后一步就是采集图像并显示处理了,这一步要设置系统调色板,因为采集卡提供的是裸图形式,既纯图像数据,没有图像的规格和调色板信息,这些需要开发者自己规定实现,下面是实现的部分代码:CTestView:CTestView()W32_Init_MPE1000();/初始化采集卡W32_Modify_Contrast(50);/下面的函数是为了对采集卡进行预设置W32_Modify_Bright
4、ness(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; bGrabMod
5、e = 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(
6、 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, COLORONC
7、OLOR) ;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
8、 ;/将下面这个函数添加在视图类的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->pal
9、Version=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);:Reali
10、zePalette(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 =
11、 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
12、 bmi->bmiColorsi.rgbBlue = i ;bmi->bmiColorsi.rgbGreen = i ;bmi->bmiColorsi.rgbRed = i ;bmi->bmiColorsi.rgbReserved = 0 ;视频"画中画"技术"画中画"这个概念类似与彩色电视机"画中画",就是在一幅大的图像内显示另外一幅内容不同的小的图像,小图像的尺寸大小一般地说为大图像尺寸的1/4或1/9,显示位置在大图像的右上角。这种技术不仅在电视技术中,在可视电话系统也可以
13、发现这种技术的身影,它们都是依靠硬件来实现的,但是如何在VC开发平台上用编程语言来将该功能添加到自己开发的视频监控软件,为使用者提供更大的信息量呢?也许读者最容易想到的是首先显示大图像,然后再在一个固定位置画第二幅小图像,这种技术技术如果对于静止图像当然没有问题,但是对于视频流,由于每一秒钟需要画25幀,即25幅图像,这样一来计算机需要不停的画不停的擦除,会给用户以闪烁的感觉,如何解决这个问题呢?有的参考书上将大小图像分快显示,这种方法要将待显示的图像数据与显示位置的关系对应起来,容易出错不说,而且麻烦,且速度慢,为此,我对该方法进行了改进,得到了满意的效果。实现的代码如下:void pict
14、ureinpicture( ).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
15、.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-&g
16、t;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->bm
17、iHeader.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_pB
18、MI2->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,biHeight
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年公寓翻新装潢合同范文范式
- 2025年农村集体土地转让协议书范本集
- 2025年联合职业能力策划合作培训协议书模板
- 2025年企业工业模具设计与制造协议
- 2025年企业员工外包服务协议书样本
- 2025年贷款协议模板专项资金分配
- 2025年产研合作协议书
- 2025年工程策划施工作业质量控制细则补充协议
- 2025年升级版一致行动人协议规范
- 2025年代理销售授权合同转让细则
- 2023年开工第一课及复工复产考试试题(含答案)
- 华为认证HCIA-Security安全H12-711考试题库及答案
- 建筑工地春节前安全教育
- DL-T 5148-2021水工建筑物水泥灌浆施工技术条件-PDF解密
- 宗教知识的课件
- GB/T 22849-2024针织T恤衫
- (详尽多应用版)钢结构工程合同范本(完整版)
- 设备维保的维修流程与服务流程
- 隔膜计量泵维护检修规程培训
- 《生物制品技术》课程标准
- 心血管内科高血压一病一品
评论
0/150
提交评论