⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 visual c++实现视频图像处理技术2.htm

📁 有关利用Visual C++6_0开发灰度位图处理的文章。
💻 HTM
📖 第 1 页 / 共 2 页
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!-- saved from url=(0045)http://www.yesky.com/20020406/1605701_1.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++实现视频图像处理技术2.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++实现视频图像处理技术2.files/y_head0603.js"></SCRIPT>

<SCRIPT src="Visual C++实现视频图像处理技术2.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> &gt; </FONT><A 
      href="http://www.yesky.com/72342367549521920/index.shtml"><FONT 
      color=#ffffff>开发者网络</FONT></A><FONT color=#ffffff> &gt; </FONT><A 
      href="http://www.yesky.com/72342371844489216/index.shtml"><FONT 
      color=#ffffff>程序方舟</FONT></A><FONT color=#ffffff> &gt; </FONT><A 
      href="http://www.yesky.com/72342371928375296/index.shtml"><FONT 
      color=#ffffff>开发专栏</FONT></A><FONT color=#ffffff> &gt; </FONT><A 
      href="http://www.yesky.com/72342371928702976/index.shtml"><FONT 
      color=#ffffff>Visual C++开发</FONT></A><FONT color=#ffffff> &gt; 
      </FONT><FONT color=#ffffff>正文</FONT></SPAN></TD>
    <TD width=214 bgColor=#f7f7f7><IMG height=22 
      src="Visual C++实现视频图像处理技术2.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++实现视频图像处理技术2.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++实现视频图像处理技术2.files/scolumn.htm" frameBorder=0 width=120 
      scrolling=no height=500></IFRAME><BR><BR>
      <SCRIPT src="Visual C++实现视频图像处理技术2.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++实现视频图像处理技术2.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++实现视频图像处理技术2.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++实现视频图像处理技术2.files/softyesky.js"></SCRIPT>
    </TD>
    <TD width=1 background="Visual C++实现视频图像处理技术2.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><A 
            href="http://www.yesky.com/20020406/1605701.shtml">上一页</A>&nbsp;&nbsp;<A 
            href="http://www.yesky.com/20020406/1605701.shtml">1</A> 2 
            &nbsp;</FONT></P><SPAN class=txt>  <FONT 
            color=#ac000><B>视频"画中画"技术</B></FONT>
            <P></P>
            <P>  "画中画"这个概念类似与彩色电视机"画中画",就是在一幅大的图像内显示另外一幅内容不同的小的图像,小图像的尺寸大小一般地说为大图像尺寸的1/4或1/9,显示位置在大图像的右上角。这种技术不仅在电视技术中,在可视电话系统也可以发现这种技术的身影,它们都是依靠硬件来实现的,但是如何在VC开发平台上用编程语言来将该功能添加到自己开发的视频监控软件,为使用者提供更大的信息量呢?也许读者最容易想到的是首先显示大图像,然后再在一个固定位置画第二幅小图像,这种技术技术如果对于静止图像当然没有问题,但是对于视频流,由于每一秒钟需要画25幀,即25幅图像,这样一来计算机需要不停的画不停的擦除,会给用户以闪烁的感觉,如何解决这个问题呢?有的参考书上将大小图像分快显示,这种方法要将待显示的图像数据与显示位置的关系对应起来,容易出错不说,而且麻烦,且速度慢,为此,我对该方法进行了改进,得到了满意的效果。实现的代码如下:<BR><BR></P>
            <TABLE width="100%" bgColor=#ffffff>
              <TBODY>
              <TR>
                <TD>
                  <P>void pictureinpicture( )<BR>{<BR>………………………..<BR>CBitmap 
                  bitmap,*oldmap;<BR>pData1=(BYTE*)new char[biWidth*biHeight 
                  *3];//biWidth和biHeight为视频采集卡获取//的图像尺寸。 
                  <BR>Read(pData1,bih.biWidth*bih.biHeight 
                  *3);//该函数从采集卡中获取数据<BR>CClientDC dc(this);<BR>m_pBMI1= new 
                  BITMAPINFO;//自定义的BMP文件信息结构,用于后面的图像显示<BR>m_pBMI1-&gt;bmiHeader.biBitCount=24;<BR>m_pBMI1-&gt;bmiHeader.biClrImportant=0;<BR>m_pBMI1-&gt;bmiHeader.biClrUsed=0;<BR>m_pBMI1-&gt;bmiHeader.biCompression=0;<BR>m_pBMI1-&gt;bmiHeader.biHeight=biHeight;<BR>m_pBMI1-&gt;bmiHeader.biPlanes=1;<BR>m_pBMI1-&gt;bmiHeader.biSize=40;<BR>m_pBMI1-&gt;bmiHeader.biSizeImage=WIDTHBYTES(biWidth*8)*biHeight*3;<BR>m_pBMI1-&gt;bmiHeader.biWidth=biWidth;<BR>m_pBMI1-&gt;bmiHeader.biXPelsPerMeter=0;<BR>m_pBMI1-&gt;bmiHeader.biYPelsPerMeter=0;<BR>//////////////////////////////////////////////////////////////////////// 
                  <BR>pData2=(BYTE*)new char[biWidth1*biHeight1 
                  *3];//申请存放小图像的缓冲区<BR>Read(pData2,biWidth1*biHeight1 
                  *3);////向该缓冲区读数据<BR>m_pBMI2= new 
                  BITMAPINFO;<BR>m_pBMI2-&gt;bmiHeader.biBitCount=24;<BR>m_pBMI2-&gt;bmiHeader.biClrImportant=0;<BR>m_pBMI2-&gt;bmiHeader.biClrUsed=0;<BR>m_pBMI2-&gt;bmiHeader.biCompression=0;<BR>m_pBMI2-&gt;bmiHeader.biHeight=biHeight1;<BR>m_pBMI2-&gt;bmiHeader.biPlanes=1;<BR>m_pBMI2-&gt;bmiHeader.biSize=40;<BR>m_pBMI2-&gt;bmiHeader.biSizeImage=WIDTHBYTES(biWidth1*8)*biHeight1*3;<BR>m_pBMI2-&gt;bmiHeader.biWidth=biWidth1;<BR>m_pBMI2-&gt;bmiHeader.biXPelsPerMeter=0;<BR>m_pBMI2-&gt;bmiHeader.biYPelsPerMeter=0;<BR>//下面实现画中画的显示</P>
                  <P>CDC 
                  MemDc;<BR>MemDc.CreateCompatibleDC(&amp;dc);<BR>bitmap.CreateCompatibleBitmap(&amp;dc,biWidth,biHeight);<BR>oldmap=MemDc.SelectObject(&amp;bitmap);<BR>::StretchDIBits(MemDc.m_hDC,0,0,biWidth,biHeight,0,0,—biWidth,biHeight,pData1,m_pBMI1,DIB_RGB_COLORS,SRCCOPY);//首先将大图像画在内寸上下文中<BR><BR>::StretchDIBits(MemDc.m_hDC,20,20,biWidth1,biHeight1,_<BR>0,0,biWidth1,biHeight1,pData2,m_pBMI2,DIB_RGB_COLORS,SRCCOPY);//再将小图像画在内寸上下文中<BR><BR>::StretchBlt(dc.m_hDC,0,0,bih.biWidth,bih.biHeight,_<BR>MemDc.m_hDC,0,0,bih.biWidth,bih.biHeight,SRCCOPY);//将结果显示在屏幕上。</P>
                  <P>MemDc.SelectObject(oldmap);<BR>delete pData1;<BR>delete 
                  m_pBMI1;<BR>delete pData2;<BR>delete m_pBMI2;</P>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -