DIY编程器网

 找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 3332|回复: 0
打印 上一主题 下一主题

[待整理] 视频信号采集与图象传输技术的研究----基于 EPP 的视频信号采集系统的设计

[复制链接]
跳转到指定楼层
楼主
发表于 2015-4-28 00:05:03 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本文概述:数字化技术的不断发展、成熟和完善,为发展新一代的数字视频采集、图象处理、分析识别系统提供了有利条件。本章针对这一情况提出了一种基于EPP的视频信 号采集系统的设计方案,它由高速A/D、D/A转换器及高速静态存储器组成。可通过CCD获取视频图象,并可进行存储和回放,该视频信号采集系统可独立工 作,还可通过EPP与PC机通信。本章介绍了此系统的具体的设计方案及各部分的电路原理图,并在此基础上进行了详细的说明,最后给出了实验结果。
          2. 1系统的组成和硬件电路时序
          本系统由视频预处理电路、视频同步分离电路、高速A/D转换电路、数据缓冲存储器、地址发生电路、时钟电路、控制电路及通讯接口组成。
       
        系统的结构框图如图3-1所示,它采用CCD摄像头获取视频信号,经视频预处理电路后由A/D转换电路转换为数字信号,时钟脉冲电路产生A/D转换器的启动信号和数据存储器的地址,可根据需要把某一幅或某几幅视频图象存入高速静态存储器(SRAM)中,然后可根据需要把SRAM中的图象经增强型并口(EPP)或USB送入计算机中进行显示与处理;该系统也可脱机工作,把数字图象读出后送入D/A转换电路,转换为模拟信号,使其在CRT上直接显示出来。
       
        在本系统中采集和回放时所需的高速时钟由时钟电路产生,视频信号采集系统和主机通讯时所需的时钟则由上位机的程序产生[19][20]。
       
        2. 1. 1视频预处理电路
          由于本系统所采用的CCD输出的视频信号的范围为0~1.5V,而A/D转换器AD9057的输入范围为2~3V,所以应把视频信号进行放大与处理,转换为A/D转换器能接受的信号范围,在这里我们采用了AD公司的专门用于视频转换的放大器AD8041,AD8041是具有低功耗电压反馈特性的高速放大器,应用在视频电子设备如摄像机或其他一些高速手持设备中是非常理想的,其框图如图3-2所示。它构成的视频预处理电路如图3-3所示,可知 为实现把范围是0~1.5V的Ui转换为AD9057所允许的2~3V,应把视频信号Ui放大(3-2)/(1.5-0)=1/1.5=2/3倍,然后再平移2V,所以Rf/R2=2/3且5Rf/R3=2,由上述计算和分析可取Rf=5kΩ,R2=7.5kΩ,R1=5kΩ,R`=15kΩ,取R3为20kΩ的电位器,在电路中进行调节。
       
         
        2. 1. 2视频同步分离电路
          在黑白视频信号中主要包括灰度信息、行同步及场同步信息,如图3-4所示,典型的黑白全电视信号具有1V的峰值,其上部70%代表图象灰度(1V白,0.3V黑),低于0.3V为同步信号。对于625线电视系统,一幅完整的图象由两场各312.5行交叠而成。每一帧图象前面有一长帧同步脉冲,这一信号的出现是一幅图象开始的标志[21]。
       
        在视频信号采集过程中,主要记录灰度信息,但灰度信息的记录必须依据行同步信号和场同步信号进行地址分配,因此必须设计视频信号同步分离器对同步信号进行分离。在此系统的设计中,视频同步分离器采用的是LM1881,其外围电路简单,对视频信号分离极为准确。
       
        LM1881视频同步分离器的性能如下:从标准的负同步NTSC,PAL和SECAM(振幅从0.5V到2V峰峰值)视频信号中分离出包含复合信号、垂直同步信号、色同步信号/反向入口时标与奇/偶校验信息,电路也能提供非标准的视频信号,用改变外接水平扫描率的设置电阻产生快水平扫描率的视频信号,在垂直同步周期的第一个锯齿上升边产生垂直输出。LM1881的引脚及连接电路如图3-5所示,时序图如图3-6.
       
         
        图3-7和图3-8分别为采用TDS360型号示波器记录的同步分离器分离出的行同步信号和场同步信号,图7、图8中上部波形为PAL制式的视频信号,下部波形分别为行同步和场同步信号波形。
       
        2. 1. 3高速A/D转换器
          经处理后的图象信号要进行模数变换以实现数字化。这里模数变换必须采用快速A/D转换器。例如考虑PAL制,每帧为625行,每行时间64ìs,水平同步间隔为12.3ìs,则有效视频行时间为51.7ìs.现系统要求的图象点阵是628×582,
         
          即要求水平空间分辨率是每行628个像素。于是每个像素采集时间即采样间隔为51.7/628=82.32ns,则采样速率为12.15MHz.这对于一般的A/D转换器是困难的,必须采用并行高速A/D转换器[22][23]。本系统中A/D转换器采用美国AD公司生产的单电源8位模数转器AD9057. AD9057是一个具有采样保持功能的8位模数转换器,它具有低功耗,低成本,体积小,使用简单等特点。有40MSPS,60MSPS,80MSPS三种采样速率,120MHZ的模拟输入带宽。它有极好的动态性能,是一种比较理想的装置。该系统中我们选用的是速率为40MSPS的A/D转换器。
       
        它的内部框图如图3-9所示,它内含模拟信号换算电路、采样保持电路、A/D转换的基准电源(+2.5V)、8位逐次逼近式ADC电路和控制电路,转换的结
         
         
       
        果可以并行输出,非常容易和微处理器或DSP(数字信号处理器)接口。AD9057的并行输出时序如图3-10所示,图中各个参数的说明如表3-1.在上升沿,采样保持器进入保持状态,并开始A/D转换,经过孔径时间t A =2.7ns,数据端开始输出数据。经过一个t EH的时间间隔后(t EH =166ns),采样结束。在低电平时,即一个t EL的时间间隔(t EL =166ns),A/D转换器处于保持状态。经过一个时钟周期即t EL +t EH后,一个转换周期结束。当下一个上升沿到来时,
       
       
       
        开始下次采样,也就是转换一结束就开始下次采样。由图3-10可看出在AD9057中有四个速率位10MSPS的A/D转换器同时工作,当第一个A/D转换器开始转换的时候,此时第四个A/D转换器刚好转换完成,输出第四个的转换结果,以此类推,这样形成了AD9057的40MSPS的转换速率。
       
       
       
        图3-11所示为AD9057用于CCD图象采集系统的电路图。目的是把CCD读出的模拟信号(单极性)转换为8位数字信号,以便微机能够进行处理,该电路采用的是并行输出模式。
         
       
        2. 1. 4存储器存储单元采用一片CYPRESS的静态存储器(SRAM)芯片CY7C1049B,CY7C1049B是一种高性能的CMOS静态存储器,其存储容量为512K×8Bit. CY7C1049B具有以下特点:
          (1)高速:tAA =12ns,tAA为从地址有效到数据有效之间的时间间隔,
          (2)低的激活功率(最大1320mW),
          (3)低的CMOS备用电源(2.75mW),
          (4)2V数据保持功能,
          (5)具有自动关断电源的功能,
          (6)输入输出与TTL电平兼容,
          (7)用CE和OE可简单的实现存储器扩展。
          这些特点使CY7C1049B适用于高带宽图形、数字信号处理系统、高性能计算机系统及其外围电路等方面的应用。
       
        CY7C1049B是一种典型的静态存储器,静态存储器的集成电路方框图如图3-12所示。
        CY7C1049B存储、读、写的时序说明如下:
        CY7C1049B上的地址总线是由A0~A18组成。无论是读还是写SRAM,该电路的芯片允许信号必须有效。正像ROM一样,这是通过转变SRAM的片选信号到逻辑电平0来实现的。由于数据总线I/O0~I/O7是双向的。这就是说,当写数据到SRAM时,它们将作为输入;而当从SRAM中读取数据时,它们将作为输出。
       
        通过设置一个新的控制信号——写允许(WE)输入信号,可以决定数据线将如何操作。在对SRAM中的存储单元进行写操作时,相应的写输入信号必须变为逻辑0电平,这就是将数据线配置为输入;相反,如果要从一个存储单元读取数据,则写信号(WE)应为逻辑1电平。当从SRAM读取数据时,输出允许(OE)信号必须有效,通过在OE这个输入端上施加逻辑0信号,将使该电路处于非高阻态的输出方式。
       
        利用此芯片的原因是视频图像不能实时地送到计算机里去,其主要的原因在于快速的视频图像数据流和计算机慢速的数据传输之间的矛盾,于是很自然地想到设立一个缓存,先把视频图像存入缓存,再慢慢地把缓存的数据送入计算机。
       
        2. 1. 5时钟电路及存储器地址的产生本系统中采用的时钟器件是无需外围电路的四个引脚的8MHz的晶振,时钟电路由一个8MHz的晶振和两片74F00构成。时钟电路有三个作用,为A/D转换器、D/A转换器以及计数器提供时钟;产生SRAM的地址(地址也可由主机程序产生);存入视频信号,并且可为系统中的其它芯片产生控制信号。存储器地址A0-A18分别和5片74F193计数器级联成的电路相连接。由于视频采集系统需要很高的速度,考虑到8MHz时钟的频率比较高,这里计数器宜选用同步计数器,因为同步计数器中各个时钟触发器的时钟信号都是输入计数脉冲,而异步计数器的各个时钟触发器,有的触发器其时钟信号是输入计数脉冲,有的触发器其时钟信号则是其它触发器的输出。所以同步计数器比异步计数器工作频率比较高,传输延迟时间短,两者需要同样多的宏单元而同步计数器有较快的时钟到输出的时间。74F193具有这些特点且无需外电路就能级联,分别把BO和CO接到后一级的CP D和CP U即可,所以选用了74F193 [24][25][26]。
       
        系统的存储部分主要由存储器(CY7C1049B)、暂存器(74F244)、多路选通器(74LS257)、计数器(74LS193)和8MHz的晶振组成。系统把A/D转换器送来的数字视频信号送入CY7C1049B中存储。由5片计数器对其进行编址。由于视频采集系每幅图象采集512行,每行采集512个点,而存储器容量为512k,可存储1024行,1片CY7C1049B可以存储两幅完整的图象。
       
        编址方法为:采用5片计数器级联,对时钟进行计数,将其输出与CY7C1049B相连,来完成对CY7C1049B的编址。
       
        时钟、AD9057、计数器、CY7C1049B的时序配合过程为:单片机发出指令,时钟开始工作,输出的是8MHZ的高低电平。此时,A/D转换器接通,每当上升沿到来时,A/D开始工作,视频模拟信号经A/D转换器转换为数字信号。而当下降沿到来时,存储器片选有效,数据存入存储器。如果上升沿打开存储器,从A/D转换器输出的数据还不稳定,所以,采用下降沿开始存储。由计算机来发出指令,控制CY7C1049B的读写。而当计算机发出指令从存储器里读数据的同时,计算机发出指令使A/D转换器停止工作。此时,74F244输出为高阻态。以免因A/D转换器的数据输出端有数据而使采集来的数据不准确[27][28]。
       
        2. 2视频信号采集系统与EPP的接口设计我们所设计的视频信号采集系统可以通过传统的标准并行口(SPP)或增强型并口(EPP)和计算机通讯。
       
        2. 2. 1 SPP模式下实现数据传输的原理
          从PC机传送数据至外设,利用并口是一种较好的选择。但利用传统的标准并行口(Standard Parallel Port,SPP)传送数据,速度和灵活性受到很大限制,数据传输方向一般是从计算机到外围设备,而实现从外围设备到计算机的数据传输一般是通过状态线来实现,其传输速度非常慢,最高速度仅为250KB/s左右。
       
        随着计算机并口技术的发展,计算机并口已经从SPP模式发展到了EPP和ECP(功能扩展并口)。增强型并行端口(EPP)协议及以后的IEEE1284标准极大地改善了PC机并口的数据传输能力,不但能与SPP兼容,而且其最高传输速率可达2MB/s.用并口的SPP模式来实现数据传输的结构图如图3-14所示。
       
        计算机通过并口的数据线向数据选通器和计数电路发送控制信号,然后控制系统板中各信号的时序;因为状态线每次只能传输四位数据,所以当静态存储器向并口传数数据时,只能通过选通器把八位数据分两次传送,每次传送半字节,这样就完成了数据的双向通讯。利用这种方法,通用性较好,但效率很低。另外,由于并口从外围设备读取数据时按半字节进行,数据传输非常缓慢。
       
        为了提高传输效率,采用了EPP传输模式。
       
        2. 2. 2 EPP模式下实现数据传输的原理(1)EPP协议信号定义及含义EPP在原来支持并行打印机的SPP协议基础上,增加了具有双向数据传输功能的EPP协议和ECP协议,数据传输速度接近ISA总线的数据传输速度。通过BIOS设置,可以把并口设置为SPP、EPP、ECP的工作方式。应用开发不需打开机箱,只需连接到打印口即可。
       
        该方式是一种与SPP兼容且能双向传输数据的协议。EPP协议更像一种总线协议,该协议定义了由基地址开始的8个寄存器,EPP协议打印机引脚和寄存器定义见表3-2.
       
       
       
        在EPP中增加了控制口信号I/O,用来管理378H的数据方向,当I/0=1时,378H数据方向为输入,用于读引脚2—9上的数据;当I/0=0时,数据方向为输出,数据通过378H输出到引脚2-9上。
       
        对外设复位信号INIT需通过编程产生,在SPP中为打印机复位。中断允许标志IRQE、外部中断申请信号和SPP方式相同。
       
        经比较,EPP通讯模式最主要的特征之一是整个数据传输过程发生在一个ISA I/O周期内,也就是说,用EPP协议来传送数据,系统可以获得500K~2M字节/秒的传输率,即并口的外围设备有接近ISA总线插板的性能。这种从并口上的外围装置获得的性能就是EPP协议的主要特征之一。利用联锁形式的握手信号,数据的传输就以接口中最慢的设备来进行,既可以是主机,也可以是外设。这种“速度的适应性”对主机和外设来说都是透明的,所有的并口传输方法都利用了联锁握手信号。利用这种方法,外围设备可以控制其本身操作所需的时间,联锁也有使传输数据的过程简单易实现的作用,所以决定采用双向并口的EPP传输模式来实现本系统的实时数据传输。
       
        (2)EPP模式的时序及寄存器接口对打印机并口的控制是通过对三个设备端口的编程来完成的。这三个端口分别是数据寄存器、控制寄存器和状态寄存器,CPU对它们的访问有五种操作:读数据、写数据、读控制、写控制和读状态,数据周期一般用于主机和外设之间的数据传送,地址周期一般用于传送地址、通道、命令和控制等信息,这些周期也可看成为两种不同的数据周期。系统为这三个端口分配了相应的I/O地址,祥见表3-3.
       
       
        表3-3中列出了PC机所支持的三种类型的打印机接口,每一种对应一块插卡,我们使用的是第二种即打印并行口1.并行口1是最常使用的一个口,选用它可保证采集系统的可移植性。
       
        EPP协议很大程度地改善了计算机并口传送数据的能力,使得不仅数据传送可以双向;速度从200kB/s可以提高到最高2mB/s;而且提供了重要的握手联络信号,使得对EPP寄存器的读写操作都会导致接口开启一个完整的数据读取或写入周期;显然相对SPP口具有更高的速度和更大的灵活性,极大地便利了自主开发的硬件对并口的读写操作,有利于这方面硬件的开发研制[29]。
       
        2. 2. 3并行接口电路设计
          接口电路设计主要是实现地址选通和数据读入。要实现大容量存储器内数据的读取,首先需要提供足够位数的地址线,然后是相应宽度的数据传输线。
       
        根据以上设计思想,打印口的I/O口378H的8位输入/输出信号用于SRAM向并口传送一个数据字节;37AH的4位输出信号用作控制信号[29]。
       
        用74F00可以控制个芯片的选通,从而进一步控制系统板上个信号的时序,其控制信号由37AH的SLCTIN管脚提供,从而实现了4096k存储器的地址选通。另外,利用37AH的AUTOFDXT管脚和379H的ERROR管脚与单片机进行信息交互,可使单片机执行不同的程序,亦可接收单片机发出的信息(主要将是否完成数据采集任务通知主机)。
       
        另外,为防止高频信号的不稳定性对数据传输的影响,可以采取以下措施:(1)在程序中插入适当的延迟。信号的高速变化可能会导致数据读取错误,插入适当的延迟后,可以使信号达到稳定。在使用较长的连接线时,这是非常需要的,如果使用只有几十厘米的连接线,可以不采用插入延迟的方法。
       
        (2)增加滤波电容。在打印口的I/O线与连接器之间加入滤波电容,可以提高传输的可靠性[30][31]。
       
        2. 3软件设计
          软件包括单片机软件部分和PC机软件部分。单片机软件包括建立通信联系和控制电路中各个信号的调协;PC机软件包括建立通信联系和发送数据。单片机系统初始化完成后,PIC16C73单片机先从RB3发送信号GETRESPONSE给PC机,判断PC机是否已作好发送图象数据的准备;PC机在接到此信号后,从DB25插座的14号线发出信号REASEXD给单片机RB5端,触发其中断,告知其即将发数据;单片机通过执行中断处理程序初始化完接收电路后,再次向PC机发送GETRESPONSE信号,告知已作好接收数据准备;当PC机再次收到GETRESPONSE信号后,确认接收方已作好准备,即开始向接收电路发送数据。
       
        单片机软件和PC机软件分别在wave2.8和Visual C十十6.0下编译通过[32][33]。
       
        2. 3. 1信号采集、回放过程管理程序
          在本系统中通过对PIC16C73进行编程来控制视频信号的采集、存储与回放,编程思想是利用PIC16C73的PORTB电平变化中断产生中断子程序。在PIC16C73的RB4和RB7引脚上分别接两个开关来产生中断脉冲,控制视频信号的回放和结束,在程序中利用由视频同步分离器分离出的场同步信号电平来保证存储和回放的视频图象是整幅的,场同步信号的波形如图3-8所示。视频信号采集、回放程序框图如图3-15所示。
       
        2. 3. 2 PC机通讯及数字图像的重建程序
          视频信号采集系统和PC机的通讯利用VC++6.0进行编程,程序框图如图3-16所示。
       
        在发送数据方面,PC机软件将bmp文件去除文件头、信息头和调色板后,利用malloc函数分配一个足够大的空间(视bmp文件大小而定),将实际位图数据存入这个空间。malloc函数返回指针,利用这个缓冲区发送数据,可以不必每发送—个数就去读文件,从而保证数据的高速传输。PC机为了在Windows
        编程环境下输出整块数据,可先用CreateFile函数打开并口,通过这个函数设置好并口参数后,得到一个句柄;利用这个句柄,使用WriteFile函数就可以向并口发送数据了。这比_Outpd函数发送数据快,因为_Outpd函数一次只能发送4个字节,不能发送数据块,每发送4个字节后就需要再读取4个字节;而WriteFile函数可以发送数据块,显然要快得多。由于EPP硬件结构会截断32位的I/O传输,传送数据时实际上产生4个向寄存器+4到+7的快速8位I/O传输,保证在一个独立的8位周期内传递32位的数据,从而保证达到2MB/s的最高传输速率。
       
       
          2. 4数字图象的结构及处理数字图象
          经过并口进入计算机之后,要在电脑中进行重现,图象的重建包括通过软件对同步信号的识别并将数字化的像素重新分配给计算机相应的显示缓冲单元。
       
        3. 4. 1 BMP文件结构
          (1) BMP文件组成BMP文件由文件头、位图信息头、颜色信息和图形数据四部分组成。
       
        (2) BMP文件头BMP文件头数据结构含有BMP文件的类型、文件大小和位图起始位置等信
       
        息。
       
        其结构定义如下:
        typedef struct tagBITMAPFILEHEADER
        { WORD bfType; //位图文件的类型,必须为BM
          DWORD bfSize; //位图文件的大小,以字节为单位
          WORD bfReserved1;//位图文件保留字,必须为0
          WORD bfReserved2; //位图文件保留字,必须为0
          DWORD bfOffBits; //位图数据的起始位置,以相对于位图
          //文件头的偏移量表示,以字节为单位
        } BITMAPFILEHEADER;(
          3)位图信息头
        BMP位图信息头数据用于说明位图的尺寸等信息。
       
        typedef struct tagBITMAPINFOHEADER
        {
          DWORD biSize;//本结构所占用字节数
          LONG biWidth; //位图的宽度,以像素为单位
          LONG biHeight; //位图的高度,以像素为单位
          WORD biPlanes; //目标设备的级别,必须为1
          WORD biBitCount//每个像素所需的位数,必须是1(双色),// 4(16色),8(256色)或24(真 彩色)之一
          DWORD biCompression;//位图压缩类型,必须是0(不压缩),// 1(BI_RLE8压缩类型)或2(BI_RLE4压缩类型)之一
          DWORD biSizeImage; //位图的大小,以字节为单位
          LONG biXPelsPerMeter; //位图水平分辨率,每米像素数
          LONG biYPelsPerMeter; //位图垂直分辨率,每米像素数
          DWORD biClrUsed;//位图实际使用的颜色表中的颜色数
          DWORD biClrImportant;//位图显示过程中重要的颜色数
        } BITMAPINFOHEADER;
          (4)颜色表颜色表用于说明位图中的颜色,它有若干个表项,每一个表项是一个RGBQUAD类型的结构,定义一种颜色。RGBQUAD结构的定义如下:
        typedef struct tagRGBQUAD
        {
          BYTE rgbBlue;//蓝色的亮度(值范围为0-255)
          BYTE rgbGreen; //绿色的亮度(值范围为0-255)
          BYTE rgbRed; //红色的亮度(值范围为0-255)
          BYTE rgbReserved;//保留,必须为0
        } RGBQUAD;
        颜色表中RGBQUAD结构数据的个数由biBitCount来确定:
        当biBitCount=1,4,8时,分别有2,16,256个表项;当biBitCount=24时,没有颜色表项。
        位图信息头和颜色表组成位图信息,BITMAPINFO结构定义如下:
        typedef struct tagBITMAPINFO
        {
          BITMAPINFOHEADER bmiHeader; //位图信息头
          RGBQUAD bmiColors[1]; //颜色表
        } BITMAPINFO;
          (5)位图数据位图数据记录了位图的每一个像素值,记录顺序在扫描行内是从左到右,扫描行之间是从下到上。位图的一个像素值所占的字节数:
        当biBitCount=1时,8个像素占1个字节;
        当biBitCount=4时,2个像素占1个字节;
        当biBitCount=8时,1个像素占1个字节;
        当biBitCount=24时, 1个像素占3个字节;
        Windows规定一个扫描行所占的字节数必须是4的倍数(即以long为单位),不足的以0填充,一个扫描行所占的字节数计算方法:DataSizePerLine=(biWidth* biBitCount+31)/8; //一个扫描行所占的字节数DataSizePerLine= DataSizePerLine/4*4; //字节数必须是4的倍数,位图数据的大小(不压缩情况下):DataSize= DataSizePerLine* biHeight [34][35];
          根据系统的要求,所定义的文件头如下:
        BITMAPINFO *FileBMP;
        char bmpBuf[2048];
        FileBMP = (BITMAPINFO *)bmpBuf;
        FileBMP->bmiHeader.biSize = sizeof(BITMAPINFOHEADER);
        FileBMP->bmiHeader.biWidth = 628;
        FileBMP->bmiHeader.biHeight = 586;
        FileBMP->bmiHeader.biPlanes = 1;
        FileBMP->bmiHeader.biBitCount = 8;
        FileBMP->bmiHeader.biCompression = BI_RGB;
        FileBMP->bmiHeader.biSizeImage = 0;
        FileBMP->bmiHeader.biXPelsPerMeter = 0;
        FileBMP->bmiHeader.biYPelsPerMeter = 0;
        FileBMP->bmiHeader.biClrUsed = 0;
        FileBMP->bmiHeader.biClrImportant = 0;
          for(int k=0;k bmiColors[k].rgbBlue = (BYTE)k;
          FileBMP->bmiColors[k].rgbGreen =(BYTE)k;
        FileBMP->bmiColors[k].rgbRed = (BYTE)k;
        FileBMP->bmiColors[k].rgbReserved = 0;
          2. 4. 2 BMP位图的显示及软件处理
          (1)申请内存空间用于存放位图文件GlobalAlloc(GHND,FileLength);
          (2)位图文件读入所申请的内存空间中LoadFileToMemory( mpBitsSrc,mFileName);
          (3)在OnPaint等函数中创建显示用位图
             用CreateDIBitmap()创建显示用位图,用CreateCompatibleDC()创建兼容DC,用SelectBitmap()选择显示位图。
       
        (4)用BitBlt或StretchBlt等函数显示位图
          (5)用DeleteObject()删除所创建的位图
          利用上述步骤,用VC++6.0进行编程,可以把数字图象在计算机中显示出来。需注意的是上位机的程序和硬件之间的时序匹配问题,因为硬件上的时钟为8MHz,而并口的速度没有那么高,只能以并口的速度为基准。通讯时的时钟脉冲由上位机的程序给出[36][37]。此系统是在Win2000系统上调试的,Win2000和Win98操作系统不同,对硬件是进行保护的,不可直接操作硬件。我在VC++的程序中加了一个动态链接库,就可以对并口直接进行操作了。采集进计算机的数字图象进入计算机后要对其进行算法处理,去掉场同步信号、行同步信号和消隐信号,才可显示出图象[38][39],但此时重现的图象和原来的图象方向正相反,原因是摄像头扫描时是从左上角开始的,而在计算机中位图数据的记录顺序在扫描行内是从左到右,扫描行之间是从下到上,所以方向相反。把行与行之间的数据按顺序重新排列好后就可以显示真实的图象了。对数字图像进行处理后的图象在计算机中的显示如图3-17所示。可以看出图象偏白,原因是模
       
       
       
        拟视频信号进入采集系统后的电平调节问题[40][41],通过电位器把电平调到适当的位置后,显示的图象就可以比较接近真实的图象了,调节电位器后重现的图象如图3-18.可以看出图象比原来提高了,虽然还有一点失真,但这是因为我
       
       
       
        们采集时用的摄像头是市场上最廉价的,采集进来的视频信号本来就有些不太完美。
          数字化技术的不断发展、成熟和完善,为发展新一代的数字视频采集、图象处理、分析识别系统提供了有利条件。本章针对这一情况提出了一种基于EPP的视频信号采集系统的设计方案,它由高速A/D、D/A转换器及高速静态存储器组成。可通过CCD获取视频图象,并可进行存储和回放,该视频信号采集系统可独立工作,还可通过EPP与PC机通信。本章介绍了此系统的具体的设计方案及各部分的电路原理图,并在此基础上进行了详细的说明,最后给出了实验结果
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|文字版|手机版|DIY编程器网 ( 桂ICP备14005565号-1 )

GMT+8, 2024-11-16 05:58 , 耗时 0.099463 秒, 21 个查询请求 , Gzip 开启.

各位嘉宾言论仅代表个人观点,非属DIY编程器网立场。

桂公网安备 45031202000115号

DIY编程器群(超员):41210778 DIY编程器

DIY编程器群1(满员):3044634 DIY编程器1

diy编程器群2:551025008 diy编程器群2

QQ:28000622;Email:libyoufer@sina.com

本站由桂林市临桂区技兴电子商务经营部独家赞助。旨在技术交流,请自觉遵守国家法律法规,一旦发现将做封号删号处理。

快速回复 返回顶部 返回列表