📄 visual c++实现视频图像处理技术1.htm
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!-- saved from url=(0043)http://www.yesky.com/20020406/1605701.shtml -->
<HTML xmlns="http://www.w3.org/TR/xhtml1/strict"><HEAD><TITLE>Visual C++实现视频图像处理技术</TITLE>
<META http-equiv=Content-Type content="text/html; charset=GB2312"></META><LINK
href="Visual C++实现视频图像处理技术1.files/cpcw.css" rel=stylesheet></LINK>
<STYLE>.nava {
FONT-SIZE: 9pt
}
</STYLE>
<META content="MSHTML 6.00.2900.3199" name=GENERATOR></META>
<SCRIPT language=JavaScript>function sendemail(){ OpenWindow = window.open('http://other.chinabyte.com/chinabyte/qin/sendemail.shtm?url=http%3A%2F%2Fwww.yesky.com/20020406/1605701.shtml&title=Visual C++实现视频图像处理技术&channel=9','emailwin','toolbar=no,location=no,scrollbars=no,menubar=no,width=462,height=450')}</SCRIPT>
</HEAD>
<BODY bgColor=#ffffff leftMargin=0 topMargin=2 marginheight="0" marginwidth="0">
<DIV align=center>
<SCRIPT src="Visual C++实现视频图像处理技术1.files/y_head0603.js"></SCRIPT>
<SCRIPT src="Visual C++实现视频图像处理技术1.files/headlink0603.js"></SCRIPT>
<TABLE cellSpacing=0 cellPadding=0 width=760 bgColor=#979797 border=0>
<TBODY>
<TR>
<TD width=10></TD>
<TD width=536><SPAN class=nava><FONT color=#ffffff>您现在的位置是: </FONT><A
href="http://www.yesky.com/72339069014638592/index.shtml"><FONT
color=#ffffff>软件</FONT></A><FONT color=#ffffff> > </FONT><A
href="http://www.yesky.com/72342367549521920/index.shtml"><FONT
color=#ffffff>开发者网络</FONT></A><FONT color=#ffffff> > </FONT><A
href="http://www.yesky.com/72342371844489216/index.shtml"><FONT
color=#ffffff>程序方舟</FONT></A><FONT color=#ffffff> > </FONT><A
href="http://www.yesky.com/72342371928375296/index.shtml"><FONT
color=#ffffff>开发专栏</FONT></A><FONT color=#ffffff> > </FONT><A
href="http://www.yesky.com/72342371928702976/index.shtml"><FONT
color=#ffffff>Visual C++开发</FONT></A><FONT color=#ffffff> >
</FONT><FONT color=#ffffff>正文</FONT></SPAN></TD>
<TD width=214 bgColor=#f7f7f7><IMG height=22
src="Visual C++实现视频图像处理技术1.files/content-1.gif"
width=214></IMG></TD></TR></TBODY></TABLE>
<TABLE cellSpacing=0 cellPadding=0 width=760 bgColor=#f7f7f7 border=0>
<TBODY>
<TR>
<TD width=149 height=10></TD>
<TD width=1 background="Visual C++实现视频图像处理技术1.files/content-3.gif"
height=10></TD>
<TD width=610 height=10></TD></TR></TBODY></TABLE>
<TABLE cellSpacing=0 cellPadding=0 width=760 bgColor=#f7f7f7 border=0>
<TBODY>
<TR>
<TD vAlign=top align=middle width=149>·<A
href="http://www.chinabyte.com/20020731/1623017.shtml">速成电脑精英(包分配)白领高薪一族从这里开始</A></TD></TR>
<TR>
<TD vAlign=top align=middle width=149><IFRAME
src="Visual C++实现视频图像处理技术1.files/scolumn.htm" frameBorder=0 width=120
scrolling=no height=500></IFRAME><BR><BR>
<SCRIPT src="Visual C++实现视频图像处理技术1.files/140_250.js"></SCRIPT>
<BR>
<TABLE cellSpacing=0 cellPadding=0 width=135 border=0>
<TBODY>
<TR>
<TD width=30 bgColor=#3d7b7b><IMG height=17
src="Visual C++实现视频图像处理技术1.files/content-2.gif" width=24
align=absMiddle></IMG></TD>
<TD class=nava align=middle width=105 bgColor=#a0d0d0><A class=A1
href="http://www.yesky.com/72348964619288576/index.shtml"><FONT
color=#000000>T O P 排 行</FONT></A></TD></TR>
<TR>
<TD vAlign=top align=middle width="6%" bgColor=#ebebeb>-</TD>
<TD width="94%" bgColor=#ebebeb><A
href="http://www.yesky.com/20030110/1647918.shtml">Java套接字编程(下)</A><BR></TD></TR>
<TR>
<TD vAlign=top align=middle width="6%" bgColor=#ebebeb>-</TD>
<TD width="94%" bgColor=#ebebeb><A
href="http://www.yesky.com/20030108/1647533.shtml">MediaStudio Pro
6.5教程</A><BR></TD></TR>
<TR>
<TD vAlign=top align=middle width="6%" bgColor=#ebebeb>-</TD>
<TD width="94%" bgColor=#ebebeb><A
href="http://www.yesky.com/20030103/1646964.shtml">三款卸载软件最新试用</A><BR></TD></TR>
<TR>
<TD vAlign=top align=middle width="6%" bgColor=#ebebeb>-</TD>
<TD width="94%" bgColor=#ebebeb><A
href="http://www.yesky.com/20030102/1646785.shtml">基于Visual
C++的Winsock API研究</A><BR></TD></TR></TBODY></TABLE><BR>
<TABLE cellSpacing=0 cellPadding=0 width=135 border=0>
<TBODY>
<TR>
<TD width=30 bgColor=#3d7b7b><IMG height=17
src="Visual C++实现视频图像处理技术1.files/content-2.gif" width=24
align=absMiddle></IMG></TD>
<TD class=nava align=middle width=105 bgColor=#a0d0d0><A class=A1
href="http://training.yesky.com/"><FONT color=#000000>网 校 热
门</FONT></A></TD></TR></TBODY></TABLE>
<SCRIPT src="Visual C++实现视频图像处理技术1.files/softyesky.js"></SCRIPT>
</TD>
<TD width=1 background="Visual C++实现视频图像处理技术1.files/content-3.gif"></TD>
<TD vAlign=top align=middle>
<TABLE cellSpacing=2 cellPadding=0 width=550 border=0>
<TBODY>
<TR>
<TD align=middle><B><FONT class=BHEAD color=#333399>Visual
C++实现视频图像处理技术</FONT></B></TD></TR>
<TR>
<TD bgColor=#bbbbbb height=1></TD></TR>
<TR>
<TD align=middle><FONT face="Arial, Helvetica, sans-serif"><SPAN
class=nava>2002-04-06· ·刘 涛··yesky<BR><BR></SPAN></FONT></TD></TR>
<TR>
<TD>
<P align=right><FONT color=red>1 <A
href="http://www.yesky.com/20020406/1605701_1.shtml">2</A> <A
href="http://www.yesky.com/20020406/1605701_1.shtml">下一页</A></FONT></P><SPAN
class=txt><BR><IMG height=85
src="Visual C++实现视频图像处理技术1.files/jt-2002-4-5-0405-2.gif" width=104
align=right> <B>[前言:]</B>
随着计算机软件、硬件技术的日新月异的发展和普及,人类已经进入一个高速发展的信息化时代,人类大概有80%的信息来自图像,科学研究、技术应用中图像处理技术越来越成为不可缺少的手段。图像处理所涉及的领域有军事应用、医学诊断、工业监控、物体的自动分检识别系统等等,这些系统无不需要计算机提供实时动态,效果逼真的图像。
<P> <B><FONT color=#ac000>基于图像采集卡的视频图像处理系统</FONT></B></P>
<P> 计算机图像处理系统从系统层次上可分为高、中、低档三个层次,目前一般比较普及的是低档次的系统,该系统由CCD(摄像头)、图像采集卡、计算机三个部分组成,其结构简单,应用方便,效果也比较不错,得到的图像较清晰。目前网上基于VC开发经验的文章不少,可是关于如何在VC开发平台上使用图像采集卡的文章确没发现,笔者针对在科研开发中积累的使用图像采集卡经验,介绍如何自己是如何将采集卡集成到图像开发系统中,希望能够给目前正需要利用图像采集卡开发自己的图像处理系统的朋友有所帮助。<BR><BR> 笔者使用的摄像机采用台湾BENTECH
INDUSTRIAL
有限公司生产的CV-155L黑白摄像机。该摄像机分辨率为752x582。图象采集卡我们采用北京中科院科技嘉公司开发的基于PCI
总线的CA-MPE 1000
黑白图象采集卡。使用图像采集卡分三步,首先安装采集卡的驱动程序,并将虚拟驱动文件VxD.vxd拷贝到Windows的SYSTEM目录下;这时候就可以进入开发状态了,进入VC开发平台,生成新的项目,由于生产厂家为图像采集卡提供了以mpew32.dll、mpew32.lib命名的库文件,库中提供了初始硬件、采集图像等函数,为使用这些函数,在新项目上连接该动态库;最后一步就是采集图像并显示处理了,这一步要设置系统调色板,因为采集卡提供的是裸图形式,既纯图像数据,没有图像的规格和调色板信息,这些需要开发者自己规定实现,下面是实现的部分代码:<BR></P>
<TABLE width="100%" bgColor=#ffffff>
<TBODY>
<TR>
<TD>
<P>CTestView::CTestView()<BR>{<BR><BR>W32_Init_MPE1000();//初始化采集卡<BR>W32_Modify_Contrast(50);//下面的函数是为了对采集卡进行预设置<BR>W32_Modify_Brightness(45);//设置亮度<BR>W32_Set_HP_Value(945);//设置水平采集点数<BR>wCurrent_Frame
= 1;//当前帧为1,获取的图像就是从这帧取得的<BR>//
设置采集信号源,仅对MPE1000有效<BR>W32_Set_Input_Source(1);<BR>W32_CACardParam(AD_SETHPFREQ,hpGrabFreq);<BR>W32_Set_PAL_Range(1250,
1024);//设置水平采集范围<BR>W32_Set_VGA_Mode ( 1 );<BR>wGrabWinX1 = 0;
// 采集窗口的左上角的坐标<BR>wGrabWinY1 = 0;<BR>firstTime=TRUE;
<BR>bGrabMode = FRAME;<BR>bZipMode = ZIPPLE;</P>
<P>/<BR>lpDib=NULL;//存放获取的图像数据<BR><BR>}</P>
<P>CTestView::~CTestView()<BR>{<BR>W32_Close_MPE1000();//关闭采集卡<BR>}<BR>////显示采集的图象,双击鼠标采集停止<BR>void
CTestView::OnGraboneframe() <BR>{<BR>// TODO: Add your command
handler code here<BR>wCurrent_Frame = 1;<BR>//
设置采集目标为内存<BR>W32_CACardParam (AD_SETGRABDEST,
CA_GRABMEM);<BR>// 启动采集<BR>if (lpDib !=
NULL)<BR>{<BR>GlobalUnlock( hglbDIB );<BR>GlobalFree( hglbDIB
);<BR>}<BR>// 分配内存<BR>hglbDIB=GlobalAlloc(GHND,
(DWORD)wImgWidth*(DWORD)wImgHeight );<BR>lpDib = (BYTE
*)GlobalLock( hglbDIB );<BR>hdc = GetDC()->GetSafeHdc( )
;<BR>if(lpDib != NULL) <BR>{<BR>cxDib = wImgWidth;<BR>cyDib =
wImgHeight;<BR>SetLogicPal( hdc, cxDib, cyDib, 8 );</P>
<P>SetStretchBltMode (hdc, COLORONCOLOR) ;</P>
<P>bGrabMark = TRUE;</P>
<P>while (bGrabMark == TRUE) <BR>{
<BR>if(msg.message==WM_LBUTTONDBLCLK) <BR>bGrabMark =
FALSE;<BR><BR>W32_ReadXMS2Buf (wCurrent_Frame,lpDib)
;<BR>SetDIBitsToDevice (hdc, 0, 0, cxDib, cyDib, 0, 0,<BR>0,
cyDib, (LPSTR) lpDib,<BR>bmi,<BR>DIB_RGB_COLORS) ;<BR>} <BR>//
停止采集<BR>W32_CAStopCapture();<BR>::ReleaseDC( GetSafeHwnd(),
hdc );<BR>return
;<BR>}<BR>////将下面这个函数添加在视图类的CTestView::OnSize()函数中,就可以对系统的调色板进行设置。<BR>void
WINAPI InitLogicPal( HDC hdc , short width, short height, WORD
bitCount )<BR>{<BR>int j, i;<BR>short cxDib,
cyDib;<BR>LOGPALETTE * pLogPal;</P>
<P><BR>j=256 ;</P>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -