随着多媒体技术发展,数字图像处理已经成为众多应用系统的核心和基础。图像处理作为一种重要的现代技术,已经广泛应用于军事指挥、大视场展览、跟踪雷达、电视会议、导航等众多领域。因而,实现高分辨率高帧率图像实时处理的技术不仅具有广泛的应用前景,而且对相关领域的发展也具有深远意义。 大视场可视化系统由于屏幕尺寸很大,只有在特制的曲面屏幕上才能使细节得到充分地展现。为了在曲面屏幕上正确的显示图像,需要在投影前实时地对图像进行几何校正和边缘融合。而现场可编程门阵列(FPGA)则是用硬件处理实时图像数据的理想选择,基于FPGA的图像处理技术是世界范围内广泛关注的研究领域。 本课题的主要工作就是设计一个以FPGA为核心的硬件系统,该系统可对高分辨率高刷新率(1024*768@60Hz)的视频图像实时地进行几何校正和边缘融合。 论文首先介绍了图像处理的几何原理,然后提出了基于FPGA的大视场实时图像融合处理系统的设计方案和模块功能划分。系统分为算法与软件设计,硬件电路设计和FPGA逻辑设计三个大的部分。本论文主要负责FPGA的逻辑设计。围绕FPGA的逻辑设计,论文先介绍了系统涉及的关键技术,以及使用Verilog语言进行逻辑设计的基本原则。 论文重点对FPGA内部模块设计进行了详细的阐述。仲裁与控制模块是顶模块的主体部分,主要实现系统状态机和时序控制;参数表模块主要实现SDRAM存储器的控制器接口,用于图像处理时读取参数信息。图像处理模块是整个系统的核心,通过调用FPGA内嵌的XtremeDSP模块,高速地完成对图像数据的乘累加运算。最后论文提出并实现了一种基于PicoBlaze核的12C总线接口用于配置FPGA外围芯片。 经过对寄存器传输级VerilogHDL代码的综合和仿真,结果表明,本文所设计的系统可以应用在大视场可视化系统中完成对高分辨率高帧率图像的实时处理。
上传时间: 2013-05-19
上传用户:恋天使569
视频监控一直是人们关注的应用技术热点之一,它以其直观、方便、信息内容丰富而被广泛用于在电视台、银行、商场等场合。在视频图像监控系统中,经常需要对多路视频信号进行实时监控,如果每一路视频信号都占用一个监视器屏幕,则会大大增加系统成本。视频图像画面分割器主要功能是完成多路视频信号合成一路在监视器显示,是视频监控系统的核心部分。 传统的基于分立数字逻辑电路甚至DSP芯片设计的画面分割器的体积较大且成本较高。为此,本文介绍了一种基于FPGA技术的视频图像画面分割器的设计与实现。 本文对视频图像画面分割技术进行了分析,完成了基于ITU-RBT.656视频数据格式的画面分割方法设计;系统采用Xilinx公司的FPGA作为核心控制器,设计了视频图像画面分割器的硬件电路,该电路在FPGA中,将数字电路集成在一起,电路结构简洁,具有较好的稳定性和灵活性;在硬件电路平台基础上,以四路视频图像分割为例,完成了I2C总线接口模块,异步FIFO模块,有效视频图像数据提取模块,图像存储控制模块和图像合成模块的设计,首先,由摄像头采集四路模拟视频信号,经视频解码芯片转换为数字视频图像信号后送入异步FIFO缓冲。然后,根据画面分割需要进行视频图像数据抽取,并将抽取的视频图像数据按照一定的规则存储到图像存储器。最后,按照数字视频图像的数据格式,将四路视频图像合成一路编码输出,实现了四路视频图像分割的功能。从而验证了电路设计和分割方法的正确性。 本文通过由FPGA实现多路视频图像的采集、存储和合成等逻辑控制功能,I2C总线对两片视频解码器进行动态配置等方法,实现四路视频图像的轮流采集、存储和图像的合成,提高了系统集成度,并可根据系统需要修改设计和进一步扩展功能,同时提高了系统的灵活性。
上传时间: 2013-04-24
上传用户:啦啦啦啦啦啦啦
视频图像处理的应用越来越广泛,各种处理算法也日趋成熟,相关的硬件技术不断地推陈出新。视频图像处理系统的硬件实现一般来说有三种方式:数字信号处理器(Digital Signal Processor)、专用集成芯片(Application Specific Integrated Circuit)和现场可编程逻辑门阵列(Field Programmable Gate Array)以及相关电路组成。最近几年,随着电子设计自动化(Electronic Design Automation)技术的迅速发展,使得基于FPGA的可编程片上系统(System On a Programmable Chip)逐渐成为嵌入式系统。应用的一种趋势。特别地,在视频图像处理系统设计中,数据量大,要求处理速度快,灵活性高,FPGA有其独特的优势。鉴于此,本文对基于FPGA和SOPC技术的视频图像处理系统进行了研究。 本文介绍了Xilinx公司FPGA的结构和功能特点,以及可编程片上系统的开发工具和片内系统设计流程。根据视频信号的相关知识,编写了视频图像处理IP核,构建了视频图像处理系统。整个系统以FPGA为核心器件,内嵌PowerPC405处理器模块,通过ⅡC总线完成视频解码芯片的初始化,总体上实现了对视频图像信号的采集、处理、存储和显示。 本文最后对系统进行了调试。经过实验验证,系统能正确和可靠地工作。整个系统的逻辑资源消耗占FPGA的百分之十几,剩余的资源可以做许多硬件算法或其它方面的应用。
上传时间: 2013-05-24
上传用户:kaka
新型的电子内窥镜融合了电子、光学以及图像处理等技术,以其方便优良的图像采集、处理及显示能力在工业无损检测、现代医疗等方面得到了广泛的应用。如何进一步提高电子内窥镜的图像采集及处理速度、智能化控制水平、便携性...
上传时间: 2013-07-26
上传用户:ynzfm
本文研究的视频处理系统是上海市科委技术攻关基金项目“计算机视觉及其芯片化实现”的一部分,主要完成计算机视觉系统的一些基本工作,即视频图像的采集、预处理和显示等。 视频图像采集和预处理系统以Xilinx公司Virtex-ⅡPro系列的FPGA为核心控制器件,结合视频模数转换芯片和VGA显示器,完成视频图像的实时采集、预处理和显示。采集和显示部分作为同外界交流信息的渠道,是构成计算机视觉系统必不可少的一部分;图像预处理则是计算机视觉系统进行高层处理的基础,优秀的预处理算法能有效改善图像质量,提高系统分析判断的准确性。 本文在介绍基于FPGA的视频采集、预处理系统整体架构的基础上,围绕以下四个方面展开了工作: 1.研究并给出了两种基于FPGA的设计方案用于实现YCrCb色度空间到RGB色度空间的转换; 2.针对采集的视频图像,根据VGA显示的要求,给出了一种实现图像去隔行的方案; 3.分析了一系列图像滤波的预处理算法,如均值滤波、中值滤波和自适应滤波等,在比较和总结各算法特点的基础上,提出了一种新的适用于处理混合噪声的滤波算法:混合自适应滤波法; 4.根据算法特点设计了多种采用FPGA实现的图像滤波算法,并对硬件算法进行RTL级的功能仿真和验证,还给出了各种滤波算法的实验结果,在此基础上对各种算法的效果进行直观的比较。 文中,预处理算法的实现充分利用了FPGA的片内资源,体现了FPGA在图像处理方面的特点及优势。同时,视频采集和显示的控制模块也由同一FPGA芯片实现,从而简化了系统整体结构。视频采集和预处理系统在FPGA上的成功实现为“计算机视觉及其芯片化实现”奠定了必要的基础、提供了一定理论依据。
上传时间: 2013-04-24
上传用户:我好难过
·详细说明:VS2005图像处理程序的源代码,功能有显示特效,点运算,几何变换,图像增强,滤镜效果
上传时间: 2013-07-05
上传用户:chenjjer
基于高速数字信号处理器(DSP) 和大规模现场可编程门阵列( FPGA) ,成功地研制了小型\\r\\n化、低功耗的实时视频采集、处理和显示平台. 其中的DSP 负责图像处理,其外围的全部数字逻辑功能都集成在一片FPGA 内,包括高速视频流FIFO、同步时序产生与控制、接口逻辑转换和对视频编/ 解码器进行设置的I2 C 控制核等. 通过增大FIFO 位宽、提高传输带宽,降低了占用EMIF 总线的时间 利用数字延迟锁相环逻辑,提高了显示接口时序控制精度. 系统软件由驱动层、管理层和应用层组成,使得硬件管理与
上传时间: 2013-08-08
上传用户:PresidentHuang
随着半导体技术以及计算机软硬件技术的飞速发展,对于图像的显示和控制技术也呈现出越来越多的方式。文中介绍了一种基于NIOS II软核处理器实现对SD卡驱动与TFT-LCD控制的方法。在设计中利用FPGA的Altera的SOPC Builder定制NIOS II软核处理器及其与显示功能相关的模块来协同从SD卡读取JPEG格式的图片,经过FPGA解码处理显示于TFL-LCD上,并使用触摸控制实现图片的前进、后退、,暂停、自动播放时间控制功能
上传时间: 2013-11-01
上传用户:huangld
利用Matlab软件编写了程序提取了的任意大小的字母和汉字的显示特征,给出了对应的图像矩阵,并将读取的二值矩阵转换为单片机能识别的16进制数字代码,通过单片机构建电路实现字母和汉字的显示。提取字母可以改变大小和形状,达到动态显示字母大小和流动变换显示的效果,提高显示设备观赏价值,可以提高人们对重要信息的注意。
上传时间: 2013-11-13
上传用户:lijinchuan
16 16点阵显示汉字原理及显示程序 #include "config.h" #define DOTLED_LINE_PORT PORTB #define DOTLED_LINE_DDR DDRB #define DOTLED_LINE_PIN PINB #define DOTLED_LINE_SCKT PB1 #define DOTLED_LINE_SCKH PB5 #define DOTLED_LINE_SDA PB3 #define DOTLED_ROW_PORT PORTC #define DOTLED_ROW_DDR DDRC #define DOTLED_ROW_PIN PINC #define DOTLED_ROW_A0 PC0 #define DOTLED_ROW_A1 PC1 #define DOTLED_ROW_A2 PC2 #define DOTLED_ROW_A3 PC3 #define DOTLED_ROW_E PC4 uint8 font[] = { /*-- 调入了一幅图像:这是您新建的图像 --*/ /*-- 宽度x高度=16x16 --*/ 0x00,0x00,0x00,0x00,0x08,0x38,0x18,0x44,0x08,0x44,0x08,0x04,0x08,0x08,0x08,0x10, 0x08,0x20,0x08,0x40,0x08,0x40,0x08,0x40,0x3E,0x7C,0x00,0x00,0x00,0x00,0x00,0x00 }; static void TransmitByte(uint8 byte); static void SelectRow(uint8 row); static void FlipLatchLine(void); static void TransmitByte(uint8 byte) { uint8 i; for(i = 0 ; i < 8 ; i ++) { if(byte & (1 << i)) { DOTLED_LINE_PORT |= _BV(DOTLED_LINE_SDA); } else { DOTLED_LINE_PORT &= ~_BV(DOTLED_LINE_SDA); } //__delay_cycles(100); DOTLED_LINE_PORT |= _BV(DOTLED_LINE_SCKH); //__delay_cycles(100); DOTLED_LINE_PORT &= ~_BV(DOTLED_LINE_SCKH); //__delay_cycles(100); } } static void SelectRow(uint8 row) { //row -= 1; row |= DOTLED_ROW_PIN & 0xe0; DOTLED_ROW_PORT = row; } static void FlipLatchLine(void) { DOTLED_LINE_PORT |= _BV(DOTLED_LINE_SCKT); DOTLED_LINE_PORT &= ~_BV(DOTLED_LINE_SCKT); } void InitDotLedPort(void) { DOTLED_LINE_PORT &= ~(_BV(DOTLED_LINE_SCKT) | _BV(DOTLED_LINE_SCKH)); DOTLED_LINE_PORT |= _BV(DOTLED_LINE_SDA); DOTLED_LINE_DDR |= _BV(DOTLED_LINE_SCKT) | _BV(DOTLED_LINE_SCKH) | _BV(DOTLED_LINE_SDA); DOTLED_ROW_PORT |= 0x1f; DOTLED_ROW_PORT &= 0xf0; DOTLED_ROW_DDR |= 0x1f; } void EnableRow(boolean IsEnable) { if(IsEnable) { DOTLED_ROW_PORT &= ~_BV(DOTLED_ROW_E); } else { DOTLED_ROW_PORT |= _BV(DOTLED_ROW_E); } } void PrintDotLed(uint8 * buffer) { uint8 i , tmp; for(i = 0 ; i < 16 ; i ++) { tmp = *buffer ++; TransmitByte(~tmp); tmp = *buffer ++; TransmitByte(~tmp); SelectRow(i); FlipLatchLine(); } } void main(void) { InitDotLedPort(); EnableRow(TRUE); while(1) { PrintDotLed(font); __delay_cycles(5000); } } //---------------------------------------------------- config.h文件 #ifndef _CONFIG_H #define _CONFIG_H //#define GCCAVR #define CPU_CYCLES 7372800L #ifndef GCCAVR #define _BV(bit) (1 << (bit)) #endif #define MSB 0x80 #define LSB 0x01 #define FALSE 0 #define TRUE 1 typedef unsigned char uint8; typedef unsigned int uint16; typedef unsigned long uint32; typedef unsigned char boolean; #include <ioavr.h> #include <inavr.h> #include "dotled.h" #endif //-----
上传时间: 2013-11-18
上传用户:mnacyf