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 here
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()->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->palPalEntry[i].peRed = i ;
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(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->bmiColors[i].rgbBlue = i ;
bmi->bmiColors[i].rgbGreen = i ;
bmi->bmiColors[i].rgbRed = i ;
bmi->bmiColors[i].rgbReserved = 0 ;
}
}

时间: 2024-07-28 13:26:13

Visual C++实现视频图像处理技术的相关文章

安防领域对视频图像处理技术的特殊要求

 随着科技的发展和时代的不断进步,视频和图像数据处理技术已经逐渐成熟起来,对人们的生活和工作起着重要的作用.未来,视频监控与我们生活的联系将日益密切. 毫无疑问,视频图像处理技术的研发是时下最大的安防热点之一,也是众多安防企业值得关注的一个领域. 视频图像处理技术的四大技术 视频图像处理过程中会涉及到对视频图像数据的采集.传输.处理.显示和回放等过程,这些过程共同形成了一个系统的整体周期,可以连续性的运作.在视频图像处理技术范围内最主要的就是包括了图像的压缩技术和视频图像的处理技术等.目前,市场

视频图像处理技术优势安防视频监控应用

随着科技的发展和时代的不断进步,视频和图像数据处理技术已经逐渐成熟起来,对人们的生活和工作起着重要的作用.未来,视频监控与我们生活的联系将日益密切.毫无疑问,视频图像处理技术的研发是时下最大的安防热点之一,也是众多安防企业值得关注的一个领域. 视频图像处理技术的四大技术 视频图像处理过程中会涉及到对视频图像数据的采集.传输.处理.显示和回放等过程,这些过程共同形成了一个系统的整体周期,可以连续性的运作.在视频图像处理技术范围内最主要的就是包括了图像的压缩技术和视频图像的处理技术等.目前,市场上主

视频图像处理技术有优势 安防视频监控应用多

随着科技的发展和时代的不断进步,视频和图像数据处理技术已经逐渐成熟起来,对人们的生活和工作起着重要的作用.未来,视频监控与我们生活的联系将日益密切.毫无疑问,视频图像处理技术的研发是时下最大的安防热点之一,也是众多安防企业值得关注的一个领域. 视频图像处理技术的四大技术 视频图像处理过程中会涉及到对视频图像数据的采集.传输.处理.显示和回放等过程,这些过程共同形成了一个系统的整体周期,可以连续性的运作.在视频图像处理技术范围内最主要的就是包括了图像的压缩技术和视频图像的处理技术等.目前,市场上主

清晰模糊图片 VICS专业视频图像处理分析系统

硅谷网讯 专业视频图像处理分析系统是国家要求公安系统必须配备的一种视频侦查装备,具有视频图像增强.比对.截取.转换.检索等视频图像处理分析功能,可以自动完成视频图像的去雾.去眩光.对比度提升和亮度调节等图像增强工作. 公安机关必须配备专业视频图像处理分析系统 随着视频监控技术的不断发展,视频监控在智慧城市.数字城市.平安园区等各类项目得以广泛应用,监控视频已经成为公安部门案件侦查的重要依据和线索,视频侦查已逐步成为继刑侦,技侦,网侦之后的第四大侦查手段.然而,由于缺乏有效的信息技术支撑,公安视频

智能建筑为视频分析技术提供更大舞台

随着监控高清摄像机的普及,智能视频分析技术的日趋成熟和完善,越来越多的行业对智能视频分析的要求也越来越高,应用的场景相比以往更为宽泛,也更为细化.针对监控中智能视频分析的一些常用功能,我们从智能建筑方面,对智能分析的部分场景应用进行简单的分析. 一.智能分析的类别 智能视频分析技术(VideoAnalytics)涉及图像处理.跟踪技术.模式识别.人工智能.数字信号处理(DSP)等多个领域.主要的智能分析产品集中在前端和后端两大类.前端智能是将一些视频分析算法移植到摄像机中,在摄像机中实现对实时视

深度学习奏响智能视频分析技术新乐章

在2017年两会热词中,被誉为互联网下一个风口的人工智能,成为两会期间大众的关注热点,与创业紧紧联系在一起,成为创业者的新宠.同时,网友也热衷于深扒人工智能背后的"黑科技",深度学习技术也因此成为关注点聚焦.其实,深度学习和安防搭配食用更美味. 深度学习奏响智能视频分析技术新乐章 随着各地视频接入规模的迅猛增长及视频监控对高清.智能.联网的要求越来越高,每天产生的数据量正以惊人的速度在不停增长.视频监控正迎来全新的大数据时代,数据越来越成为最宝贵的资源,如何有效对数据进行存储.共享以及

视频监控技术及其在智慧城市工程中的应用

视频监控技术及其在智慧城市工程中的应用 山东大学  韩锦 视频监控(Cameras and Surveillance)系统是城市安全防范体系的核心配置,系统由前端摄像机.传输线缆.存储部分.视频监控平台组成.摄像机有模拟摄像机和网络数字摄像机两种,主要用于采集前端视频图像信号.视频监控系统是一个防范性能优越的系统,目前以自身直观.准确.及时和内容丰富的特点得到了广泛应用,在许多行业.场合都有充分使用.近些年,基于计算机.网络.图像处理.传输技术的进步,视频监控技术也实现了明显的发展和提升.在物联

利用Visual C#实现Windows管道技术

visual|window 管道技术一般采用Window API来实现,最近我试着用C#来实现Windows管道技术,发现C#本身方便的进程线程机制使工作变得简单至极,随手记录一下,推荐给大家. 首先,我们可以通过设置Process类,获取输出接口,代码如下: Process proc = new Process();proc .StartInfo.FileName = strScript;proc .StartInfo.WorkingDirectory = strDirectory;proc

CPU中英特尔清晰视频高清晰度技术

  清晰视频高清晰度技术是英特尔在其整合显示核心中提供的一项针对高清视频播放质量的软硬件结合解决方案.该方案最早从G965 IGP芯片开始支持,但在当时只能对MPEG-2格式的高清视频提供解码加速,而最新的G45芯片组所提供的GMA X4500HD则已经具备包括MPEG-2,VC-1和AVC等多种视频格式在内的全面硬件解码能力.在清晰视频高清晰度技术的支持下,播放高清视频时的处理器占用率可以得到有效控制,从而为现代数字家庭的多任务应用环境打下性能支持基础. 除此之外,清晰视频高清晰度还支持反逐行