计算机图像处理技术论文.doc
计算机图像处理技术论文
前言:随着计算机软件、硬件技术的日新月异的发展和普及,人类已经进入一个高速发展的信息化时代,人类大概有80%的信息来自图像,科学研究、技术应用中图像处理技术越来越成为不可缺少的手段。图像处理所涉及的领域有军事应用、医学诊断、工业监控、物体的自动分检识别系统等等,这些系统无不需要计算机提供实时动态,效果逼真的图像。
基于图像采集卡的视频图像处理系统
计算机图像处理系统从系统层次上可分为高、中、低档三个层次,目前一般比较普及的是低档次的系统,该系统由CCD(摄像头)、图像采集卡、计算机三个部分组成.freelpepee = 1;//当前帧为1,获取的图像就是从这帧取得的
// 设置采集信号源,仅对MPE1000有效
ode ( 1 );
e=TRUE;
bGrabMode = FRAME;
bZipMode = ZIPPLE;
/
lpDib=NULL;//存放获取的图像数据
}
CTestViee()
{
// TODO: Add your mand handler code here
e = 1;
// 设置采集目标为内存
EM);
// 启动采集
if (lpDib != NULL)
{
GlobalUnlock( hglbDIB );
GlobalFree( hglbDIB );
}
// 分配内存
hglbDIB=GlobalAlloc(GHND, (Dode (hdc, COLORONCOLOR) ;
bGrabMark = TRUE;
sg.message==_LBUTTONDBLCLK)
bGrabMark = FALSE;
S2Buf (e,lpDib) ;
SetDIBitsToDevice (hdc, 0, 0, cxDib,.freeli,
DIB_RGB_COLORS) ;
}
// 停止采集
APINFO *)malloc(sizeof(BITMAPINFOHEADER) + j*sizeof(RGBQUAD))) == NULL )
return ;
//bmi为全局变量,用于显示图像时用
bmi- bmiHeader.biSize = 40;
bmi- bmiHeader.bieter = 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*)ne_pBMI1= ne_pBMI1- bmiHeader.biBitCount=24;
m_pBMI1- bmiHeader.biClrImportant=0;
m_pBMI1- bmiHeader.biClrUsed=0;
m_pBMI1- bmiHeader.bipression=0;
m_pBMI1- bmiHeader.biHeight=biHeight;
m_pBMI1- bmiHeader.biPlanes=1;
m_pBMI1- bmiHeader.biSize=40;
m_pBMI1- bmiHeader.biSizeImage=I1- bmiHeader.biI1- bmiHeader.biXPelsPerM