利用DSP实现图像的灰度处理

合集下载

DSP及其在图像处理中的应用

DSP及其在图像处理中的应用

地量化为 0或 2 5 这样 的图像将在直方 图的两端产生两个尖峰 5, 脉冲。另外 , 对灰度直方图的应用是通过其来直接计算综合光密
度(O , I D)该值可 以在一定程度上反 映图像 的质量 。I D的计算 O 过程表达如下 :
4 6
I=f ) ), O 』D,(d) D y ( (d ,
导一
J(d kk N )
( 5 )
从式( ) 以看 出 MG 5可 L实际为 I D与面 积的比值 。 O
3 灰 度算 法的 实现
灰度直方图统计算法 非常简单 :先分配 一定 数 目的灰度 计
数器 , 然后对图像所有像素进行 扫描 , 同时启 动计数器开始 统计
幅图像 是否合理利用全部允许使用 的灰度级范 围,好 的数字
图像 应尽 可能地对其加 以利用 , 否则等于增加了量化的间隔 。通
过对直方图两端所进行的检验 ,还可 以从 一个侧面判断一 幅图 像是否为合格的数字化图像 ,其依据是 如果 原始 图像具有超 出 数字化器所能表达的灰度范围 ,则这些 超出的部分将会被简单
图 1 D 6 2评估板示意图 M4
( 2 )
式中 儿 b分别为 图像 的高度 和宽度 ,对于数 字图像 由于被
量化为离散 的点 , 因此上述积分可 以用求 和来近似 ; 于有 2 6 对 5 个灰度级 的图像 , 度为 k的像 素数 m 可用 函数 N( ) 表示 , 灰 k来 则式( ) 2 可改写成 : 21 灰 度变换概述 . 图像 灰度 的变换 ( ry S a rnfr t nG T 是 图像增 G a — clTa s ma o , S ) e o i 强处理技术 中一种非 常基 本而又直 接的空域 图像处 理 的方 法 , 同样是 图像 数字化 软件 与显示 软件 的一个 非常重 要 的组成 部

动态差分阈值法

动态差分阈值法

动态差分阈值法动态差分阈值法是一种广泛应用于图像处理和计算机视觉领域的算法。

该算法通过调整阈值来实现对图像中物体的分割,以消除背景噪声和平滑轮廓。

下面将分步骤介绍该算法的实现过程。

第一步:灰度化灰度化是将图像从RGB颜色空间转换到灰度颜色空间的过程。

该过程使得算法处理的图像数据量更小,并且在保留有用信息的同时,可以减少数据维度。

在该算法的实现中,使用的是加权平均法,即将RGB三个通道的像素值加权平均,得到图像的灰度值。

第二步:滤波处理滤波处理是为了去除图像中的噪声和过度平滑的像素。

在动态差分阈值法中,使用的是高斯滤波器,它通过叠加多个高斯函数来平滑图像,并在保留边缘信息的同时,消除高频噪声。

对于一般情况,高斯滤波器的大小视图像的分辨率而定。

第三步:求取差分差分操作是该算法的关键步骤之一。

该步骤通过计算像素与相邻像素的差异值来确定图像中的边缘位置。

在动态差分阈值法中,使用的是一阶差分算子,在计算差分过程中,需要保证差分结果的有效性,即排除噪声的干扰。

第四步:动态阈值处理动态阈值处理是根据图像的差分值来进行分割处理的过程,该过程的目的是去除噪声和保留有限的边缘信息。

在动态差分阈值法中,采用的是一种自适应线性阈值化算法,通过设置参数来调整阈值的大小,从而实现对图像的自适应分割。

第五步:二值化最后一步是将阈值化后的图像进行二值化,即将阈值化后的像素按照设定的阈值进行二进制划分。

该过程通常涉及到的计算能力较小,因此算法的速度会比较快。

综上所述,动态差分阈值法在图像分割中发挥了重要的作用。

该算法的实现过程相对简单,通过灰度化、滤波处理、差分计算、动态阈值处理和二值化处理五个步骤,就能够得到一幅满足分割要求的二值化图像。

该算法在很多场合下都得到了广泛的应用,包括检测人脸、检测车辆等。

DSP图像处理技术-实验报告模板New1

DSP图像处理技术-实验报告模板New1

西安**大学通信与信息工程学院《DSP数字图像处理技术》课内实验报告(2016/ 2017 学年第 2学期)学生姓名: 88888专业班级: 7777学号: 0000指导教师: 0000目录实验1:Code Composer Studio入门实验 0一、实验目的 0二、实验原理 0三、实验内容(调试好的程序,实验结果与分析) (1)四、实验小结 (1)实验2:编写一个以C语言为基础的DSP程序 (4)一、实验目的 (4)二、实验原理 (4)三、实验内容(调试好的程序,实验结果与分析) (4)四、实验小结 (6)实验3:图像灰度化实验 (7)一、实验目的 (7)二、实验原理 (7)三、实验内容(调试好的程序,实验结果与分析) (7)四、实验小结 (8)实验4:图像平滑实验 (10)一、实验目的 (10)二、实验原理 (10)三、实验内容(调试好的程序,实验结果与分析) (12)四、实验小结 (15)实验5:图像锐化实验 (16)一、实验目的 (16)二、实验原理 (16)三、实验内容(调试好的程序,实验结果与分析) (16)四、实验小结 (18)实验6:图像灰度变换实验 (21)一、实验目的 (21)二、实验原理 (21)三、实验内容(调试好的程序,实验结果与分析) (21)四、实验小结 (22)实验7:图像均衡化实验 (24)一、实验目的 (24)二、实验原理 (24)三、实验内容(调试好的程序,实验结果与分析) (24)四、实验小结 (24)实验8:图像边缘检测实验 (28)一、实验目的 (28)二、实验原理 (28)三、实验内容(调试好的程序,实验结果与分析) (28)四、实验小结 (30)实验总结与心得体会 (36)实验1:Code Composer Studio入门实验一、实验目的1、学习创建工程和管理工程的方法2、了解基本的编译和调试功能3、学习使用观察窗口4、了解图像功能的使用二、实验原理开发 TMS320C6xxx 应用系统一般需要以下几个调试工具来完成:1. 软件集成开发环境(CCS):完成系统的软件开发,进行软件和硬件的仿真调试,它是硬件调试的辅助工具。

LED显示屏灰度调制算法

LED显示屏灰度调制算法

LED显示屏灰度调制算法PWM(Pulse Width Modulation,脉宽调制)调制算法是一种常用的数字灰度调制方法。

它通过控制信号的脉冲宽度来实现对灰度级别的控制。

PWM算法将时间分为多个周期,在每个周期内,通过调节脉冲的高电平时间来控制LED的亮度。

PWM调制算法的基本原理是,将输出信号与一个固定频率的周期信号进行比较。

输出信号的占空比决定了接下来一个周期内的高电平时间。

在一个周期内的每个周期信号上,高电平时间越长,LED的亮度越高,高电平时间越短,LED的亮度越低。

PWM调制算法的具体步骤如下:1.初始化:设置PWM调制频率和灰度级别数量。

一般来说,调制频率越高,图像的显示效果越好,但对硬件的要求也越高。

2.读取图像:将待显示的图像数据读取入内存。

3.处理图像:将图像数据进行处理,根据PWM调制算法生成相应的脉冲宽度。

4.输出信号:将生成的脉冲宽度控制LED显示屏的亮度。

具体来说,处理图像的步骤如下:1.对图像进行灰度化处理:将图像的RGB值转换为灰度值。

2.根据灰度级别生成脉冲宽度:根据灰度级别的大小生成对应的脉冲宽度。

3.输出PWM信号:将生成的脉冲宽度的数据输出,控制LED的亮度。

以上就是LED显示屏灰度调制算法的基本原理和步骤。

通过PWM调制算法,可以实现对LED显示屏上图像的灰度级别进行精细的控制,达到更好的显示效果。

同时,PWM算法相对简单,易于实现,并且在LED显示屏上广泛应用。

但是,PWM调制算法也存在一些问题,比如在低亮度下可能会出现明显的闪烁现象,需要进一步的优化和改进。

总之,LED显示屏灰度调制算法是一种常用的调制算法,通过控制信号的脉冲宽度来实现对LED显示屏上图像的灰度级别的调节和控制,最终达到更好的显示效果。

数字视频处理_数字视频处理中运动估计的方法及应用

数字视频处理_数字视频处理中运动估计的方法及应用
图像序列运动估讣仍然是一个不断发展的研究领域。一些新技术和新理论不断得到研究和应用,另 外各种传统技术方法的综合应用使得算法的自适应更强,针对特立问题的算法性能更加优化。利用多分 辨技术和小波技术是当前图像序列运动估讣的热点之一,它具有良好的时频局部化分析能力,克服了F ourier分析方法表示信息时能够淸晰地揭示岀信号的频率特征但不能反映时间域上的局部信息的缺陷。 神经网络也是近年来蓬勃发展的技术,研究人员也在尝试利用其进行运动估计。与此同时,更髙像素精 度的运动估计(如半像素、1/4像素、1/8像素等)也成为了一个主要的发展趋势,并已经在交通监 视、机械加工等工业实践中得到广泛应用。另外,便于硬件实现的运动估计算法也得到发展,一些经 典的算法因为其适合于DSP实现而重新得到人们的重视。
运动就是对应于角度轴上的平移,使用相位相关法可以找到这个平移量。同样,使用对数坐标轴,尺度变 换可以由频率域的平移变换得到。然而Fourier变换给相位法带来了额外的汁算量°
像序列运动估计技术的应用
图像序列运动估讣技术已经广泛运用于国民经济中的许多领域,特别对数字视频编码技术、电子稳像 技术以及图像配准技术等方而有重要的支撑作用。
2.
利用特征法进行运动估计,首先要在参考图像中确左一组特征结构作为标识,并对当前图像进行搜索,以 寻找到对应的特征结构,从而获得图像序列的运动量。可以利用的主要特征量有:角点、直边缘、曲线边 缘等局部特征和形心、表而积、惯量矩的长短轴等全局特征。利用特征法估计视频图像序列帧间运动矢量 的基本步骤为:1)图像序列中每一帧图像进行处理提取特征量;2)确立特征量的帧间对应关系;3)计算特 征量的运动参数并求出图像的运动矢量。其中,确立对应关系是指求每个肖点对应的一个匹配,去除所有 其他连接,是估计图像运动特性中最困难的问题。目前提出了一种基于特征点集二维运动模型的全局运动 估计。其原理是:选取图像不同区域内的多个特征点,构成特征点集,点集内各点之间的相对位置形成稳定 的结构,约朿每点的局部运动必须保持全局一致性,从而保证运动估计的全局性和鲁棒性,提高抗噪声干 扰的能力。寻找点集之间的转换关系,就是待求的稳左的全局运动矢量。由于基于特征点的运动估计算法 易受噪声和图像遮挡的影响,利用图像边缘特征的运动估汁算法得到发展。有一种基于多直线特征的全局 运动估计算法。它通过小波变换法提取图像中的边缘,并利用Hough变换法提取图像中的直线段特征, 然后按照直线段的特征参数和位程选择原则选择具有分布特性的多个直线段,并通过对应的直线段特征比 较讣算局部运动参数和全局运动参数。相位相关法是一种频域运动检测方法,它利用了Fourier变换的 移位性质,即时域中的移位等于频率域中的相移。若一幅图像是另一幅图像的平移后的复制品,如:

DSP课设数字图像处理——二值化

DSP课设数字图像处理——二值化

DSP技术及应用课程设计报告课题名称:数字图像处理——二值化学院:电气信息工程学院专业:通信工程班级:姓名:学号:指导教师:董胜成绩:日期:2014.6.9-2014.6.20目录一、设计目的及要求 (2)二、设计所需的软件介绍 (2)三、设计原理 (3)四、程序流程图 (6)五、设计程序 (7)六、处理后的效果展示 (11)七、课程设计心得 (15)八、参考文献 (16)一、设计目的及要求:目的:1、掌握CCStudio3.3的安装和配置;2、掌握数字图像处理的原理、基本算法和各种图像处理技术;3、掌握图像的灰度化、二值化和灰度直方图的原理及编程思路;4、掌握图像滤波(图像锐化、中值滤波、边缘检测、特征识别等)的基本原理及编程方法及编程思路;要求:1、能够根据设计题目要求查阅检索有关的文献资料,结合题目选学有关参考书。

查询相关资料,初步制定设计方案。

2、用CCS软件进行C语言设计相关算法,实现对图像的采集及处理。

3、编写相应的C语言程序实现各种图像处理。

二、设计所需的软件介绍:英文全称:Code Composer Studio 中文译名:代码调试器,代码设计套件。

CCS的全称是Code Composer Studio,它是美国德州仪器公司(Texas Instrument,TI)出品的代码开发和调试套件。

TI公司的产品线中有一大块业务是数字信号处理器(DSP)和微处理器(MCU),CCS便是供用户开发和调试DSP和MCU程序的集成开发软件。

Code Composer Studio v3.3 (CCStudio v3.3) 是用于 TI DSP、微处理器和应用处理器的集成开发环境。

Code Composer Studio 包含一整套用于开发和调试嵌入式应用的工具。

它包含适用于每个 TI 器件系列的编译器、源码编辑器、项目构建环境、调试器、描述器、仿真器以及多种其它功能。

Code Composer Studio IDE 提供了单个用户界面,可帮助您完成应用开发流程的每个步骤。

DSP在图像处理中的应用

DSP在图像处理中的应用

DSP在图像处理中的应用与发展班级:姓名:学号:DSP在图像处理中的应用与发展摘要:在过去的几年中,各种各样的数字信号处理方法层出不穷。

数字信号处理器已经成为许多消费、通信、医疗、军事和工业类产品的核心器件。

在实际应用中可以选用的数字信号处理实现方法很多。

但是,数字信号处理器(DSP)以其在处理速度、价格和功耗上的无以替代的优势赢得了大多数用户的信任。

随着信息家电、网络通信和3G移动通信的飞速发展,作为最关键的核心器件的数字信号处理器,将会把人们带人高速信息化的时代。

而基于DSP的数字图像处理技术也随之DSP的发展而不断革新。

图像处理技术最初是在采用高级语言编程在计算机上实现的,后来还在计算机中加入了图像处理器(GPU),协同计算机的 CPU工作,以提高计算机的图形化处理能力。

在大批量、小型化和低功耗的要求提出后,图像处理平台依次出现了基于VLSI 技术的专用集成电路芯片((ASIC)和数字信号处理器((DSP)。

但基于DSP的图像处理系统以其可降低体积、重量与功耗,同时价格也较低,具有较高的可靠性,且易于维修与测试,对噪声与干扰有较强的抗干扰能力,越来越受到了人们的青睐。

图像处理与识别是DSP应用中的一个极其重要的领域。

随着近年来对图像高速实时处理的要求,基于DSP的数字图像处理技术发展迅速,在超声图像、红外图像、天文图像、医疗影像和军事等领域等到了广泛的应用。

其目前主要向着多DSP并行运算、多CPU实时系统、分布式实时系统等方向发展。

而一些新的数学方法像模糊论集的引入、神经网络理论的实用化以及分形几何学的应用尤其是小波变换正逐步应用于处理图像的DSP系统中。

这使得用于图像处理的DSP系统向着集成化、并行化、开发简易化和标准化方向发展。

1 、DSP和图像处理技术的发展概况基于DSP的数字图像处理技术是一种新兴的边缘融合技术,可以通俗的理解为DSP与图像处理的结合,现今,它逐步的走向成熟。

成为一门新兴的学科,越来越多的人们投入到了它的研究中。

基于DSP的图像处理

基于DSP的图像处理

基于DSP的图像处理15级电气二班曹永鸿1.1图像处理的基本概念图像处理是指安之低昂的需要突出一幅图像中的某些信息,同时削弱或去除默写不需要的信息,他是一种将原来不清晰的图像变得清晰或强调某些感兴趣的特征,一直不感兴趣的特征,是指改善图像质量丰富信息量,加强图像判读和识别效果的图像处理方法。

图像处理就是增强图像中用户感兴趣的信息,其主要目的有两个:一是改善图像的视觉效果,提高图像成分清晰度;二是使图像变得更有利于计算机处理。

1.2.1 TMS320C6000 DSP芯片的硬件系统本文选择TI公司的TMS320C6000系列开发板,作为算法实现的嵌入式硬件平台。

TMS320C6000系列DAP是美国TI公司于1997年推出的新一代高性能的数字信号处理芯片,具有很高的工作频率和极强的并行处理能力。

片内有A、B两组共8个并行处理单元,每组内分为L、M、D、S四个单元,每组处理单元结合同侧的寄存器和数据通道,构成了一个完整的数据处理单元。

C6000处理器的A、B两个王正德数据处理单元之间可以通过两条数据交叉通路进行数据交叉访问,所以这样的硬件结构非常适合实现数据的并行处理,利于实现数据实时处理。

1.3基于DSP的图像处理实现图像处理技术基本上可以分成两大类:品与处理法和空域处理法。

频域处理法的基础是卷积定理,它是将图像看做波,然后利用信号处理中的手段对图像波进行处理。

空域处理法的基础是灰度映射变换,它是直接针对图像中的像素进行处理,所用到的映射变换拒绝与增强的目的,例如增强图像的对比度,改善图像的灰度层次等处理均属于空域处理法的范畴。

1.3.2数字图像边缘检测 sobel 算子这种做法能够在增强目标边缘细节的同时以削弱部分高频成分的噪声。

Sobel边缘检测增强算法的变异是从抑制噪声并增强目标的方向入手。

从理论上来说,本方法可以大大提高对红外目标的探测识别能力。

另外,从最终增强的结果与原始图像比较情况来说,图像的每个区域的细节都得到了很好的提升。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验17、利用DSP 实现图像的灰度处理一、 实验目的1. 了解图像灰度处理基本原理和方法。

2. 熟悉视频采集与显示的运行过程。

3. 掌握图像数据在内存中的存储方式,掌握内存地址与屏幕坐标的对应关系。

4. 掌握利用DM642实现图像的灰度处理的方法。

二、 实验内容在实验16的基础上,自行设计图像灰度处理的算法程序,加入到视频显示程序中。

要求实现灰度显示的区域为一个带黑框的矩形部分,该矩形在显示器屏幕中的位置为:X 坐标范围(190~530),Y 坐标范围(118~458);黑色边框为6个像素宽度。

如图1所示。

图1 视频显示示意图 三、实验原理1.灰度处理算法灰度图(Gray-scale Image )是指将图像按照灰度等级的数目来划分后形成的图像。

灰度模式最多使用256级灰度来表现图像,图像中的每一个像素有一个0~255之间的亮度值,0表示黑色,255表示白色。

在RGB 色彩空间中,当R 、G 、B 各分量相等时,即呈现为灰度图。

对YUV 编码的图像来说,转换为RGB 的表达式如下:R=Y+1.370705*(V-0.5)G=Y-0.698001*(V-0.5)-0.337633*(U-0.5)灰度显示区域 X Y184 184 112 112(719,575)彩色显示区域 6B=Y+1.732446*(U-0.5)从上式可以很容易得到,当V=U=0.5时,R=G=B。

由于本实验中Y、U、V采用8位无符号数格式,所以0.5转换为8位无符号数格式即为128(0x80)。

因此,对YUV图像来说,将Cb、Cr分量设置为0x80,Y分量保留,即能实现灰度图。

2.数据在内存中的存放为了保证DSP的数据处理速度,我们应在内存中开辟三个数据缓冲区:采集缓冲区、数据处理缓冲区、显示缓冲区。

我们在主程序中已经定义了这三个数据缓冲区,每个缓冲区的大小均为一帧图像的大小(720*576,每帧576行,每行720个像素)。

其中,采集缓冲区为:capChaAYSpace[720*576]、capChaACbSpace[360*576]、capChaACrSpace[360*576]数据处理缓冲区为:tempYbuffer[720*576]、tempCbbuffer[360*576]、tempCrbuffer[360*576]显示缓冲区为:disChaAYSpace[720*576]、disChaACbSpace[360*576]、disChaACrSpace[360*576]从以上定义可以看出,每个数据缓冲区都包含了3个子缓冲区,分别存放Y、Cr、Cb,这是因为VP口自动地将解码器中的BT.656数据流分解为了Y、Cr、Cb三个单独数据流。

同时,由于解码器中BT.656数据流采用了YUV4:2:2格式,数据流顺序为Cb-Y-Cr-Y-Cb-Y-Cr-Y-…,即每两个Y分量公用一个Cb和Cr分量。

所以,Cb和Cr的缓冲区大小是Y的一半。

此外,还要特别提醒的是,图像的采集是分奇偶场采集的,即一帧图像包含两场数据。

采集时,先采集奇场,奇场的数据存放在数据缓冲区的前半部,接下来采集的偶场数据存放在缓冲区的后半部。

3.屏幕坐标与内存地址的对应关系在数据处理时,应特别注意数据显示在屏幕上的坐标与它们在内存中的地址之间的关系。

由于图像的采集分为奇偶场采集,因此对像素处理时一般需要分奇行和偶数行处理。

注意:采集奇场图像时,对应的是偶数行;采集偶场图像时,对应的是奇数行。

假设某个数据显示在屏幕上的坐标为(PosX,PosY),其在某个数据缓冲区的地址为YAddr、CbAddr、CrAddr,而该数据缓冲区的首地址为已知的YSpace、CbSpace、CrSpace,则屏幕坐标与内存地址之间的关系可以表示为:当奇数场时,即PosY为偶数:YAddr=(PosY>>1)*720+PosX+YSpaceCbAddr=(PosY>>1)*360+(PosX>>1)+CbSpaceCrAddr=(PosY>>1)*360+(PosX>>1)+CrSpace当偶数场时,即PosY为奇数:YAddr=((PosY>>1)+288)*720+PosX+YSpcaceCbAddr=((PosY>>1) +288)*360+(PosX>>1)+CbSpaceCrAddr=((PosY>>1) +288)*360+(PosX>>1)+CrSpace四、程序设计实验16已经给出了完整的图像采集与显示程序,本实验只需要将灰度处理算法子程序嵌入到dm642main.c中即可,而其他程序可以不作改动。

在视频采集时,图像数据通过EDMA从VP采集口的FIFO搬移到内存中,应存放在采集缓冲区capChaA*Space(对应三个分量Y、Cb、Cr,以下同);当对图像进行处理(如灰度显示、图像缩放等)时,需将采集缓冲区的图像数据用CSL函数DA T_copy复制至数据处理缓冲区temp*buffer,所有对图像的处理都应是对数据处理缓冲区中的数据进行相应运算;图像处理完毕,再次用CSL函数DAT_copy将数据转移至显示缓冲区disChaA*Space,最后由EDMA将显示缓冲区图像数据搬移到VP显示口的FIFO,进行显示。

灰度处理可分为两个子函数:一个是画黑色矩形框的子函数drawRectangle,另一个是实现灰度的子函数removeColor。

这两个函数要求同学自行设计代码,注意奇偶场数据的分开处理。

五、实验设备1.装有CCS3.3软件的PC计算机。

2.SEED-VPM642开发板。

3.SEED-XDS510PLUS仿真器。

4.摄像头。

-VGA转换器+VGA显示器。

六、实验步骤1.实验箱连接如下:(1)将SEED-VPM642开发板通过仿真器SEED-XDS510PLUS连接到计算机的USB 接口。

(2)将SEED-VPM642开发板模拟接口中的Vin1连上摄像头的VIDEO OUT口。

(3)将开发板的V out模拟接口先连上实验箱中的TV-VGA转换器,再将VGA显示器连上该转换器。

(4)将SEED=VPM642开发板接上5V直流电源。

(5)将摄像头接上12V直流电源。

(6)将TV-VGA转换器接上5V直流电源。

(7)将实验箱接上220V电源,并打开右侧的开关。

2.以硬件仿真(Emulator)方式运行CCS,进入CCS环境。

3.创建工程,向工程添加src文件夹中的dm642main.c、vportcap.c、vportdis.c、_sa7121h.c、_tvp51xx.c、iic.c、seeddm642_cpld.c、ves_dm642.asm以及seeddm642video.cmd;添加lib文件夹中的rts6400.lib及cslDM642.lib。

4.查看工程结构,浏览并理解源文件。

5. 根据实验要求,设计相关代码。

6.配置CCS工作环境,指定自定义头文件存放路径和芯片类型。

7.编译链接源文件,装载可执行文件。

为防止程序跑飞,应在装载可执行文件之前执行菜单Debug->Reset CPU命令,将芯片复位。

8.运行程序,在VGA显示器上观察结果。

七、实验结果与分析1.设计原理灰度处理分两个子函数编写,一个是画黑色矩形框的子函数drawRectangle,另一个是实现灰度的子函数removeColor。

2.代码及说明(1)函数申明extern far void removeColor();extern far void drawRectangle();(2)子函数调用/*此处可加入数据处理子程序*/removeColor();/*实现灰度子函数*/drawRectangle();/*画黑色矩形框子函数*/(3)removeColor()灰度处理子函数/*实现灰度子函数*/void removeColor(){int PosX,PosY;int CbAddr,CrAddr;/*灰度显示区域*/for(PosX=190;PosX<530;PosX++)for(PosY=118;PosY<458;PosY++){/*PosY为偶数,即奇数场*/if(PosY%2==0){/*奇数场下屏幕坐标与内存地址对应关系*/CbAddr=(PosY>>1)*360+(PosX>>1)+tempCbbuffer;CrAddr=(PosY>>1)*360+(PosX>>1)+tempCrbuffer;/*U=V=0.5*/*(Uint8*)CbAddr=0x80;*(Uint8*)CrAddr=0x80;}/*PosY为奇数,即偶数场*/else{/*偶数场下屏幕坐标与内存地址对应关系*/CbAddr=((PosY>>1)+288)*360+(PosX>>1)+tempCbbuffer; CrAddr=((PosY>>1)+288)*360+(PosX>>1)+tempCrbuffer; /*U=V=0.5*/*(Uint8*)CbAddr=0x80;*(Uint8*)CrAddr=0x80;}}}(4)drawRectangle()画黑色矩形框子函数、 /*画黑色矩形框子函数*/void drawRectangle(){ int PosX,PosY;int YAddr;/*黑色边框左边的边*/ for(PosX=184;PosX<190;PosX++)for(PosY=112;PosY<464;PosY++){ /*PosY 为偶数,即奇数场*/if(PosY%2==0){ YAddr=(PosY>>1)*720+PosX+tempYbuffer;*(Uint8*)YAddr=0x00;} /*PosY 为偶数,即奇数场*/else{ YAddr=((PosY>>1)+288)*720+PosX+tempYbuffer;*(Uint8*)YAddr=0x00;} }/*黑色边框右边的边*/ for(PosX=530;PosX<536;PosX++) for(PosY=112;PosY<464;PosY++){/*PosY 为偶数,即奇数场*/ if(PosY%2==0){YAddr=(PosY>>1)*720+PosX+tempYbuffer; *(Uint8*)YAddr=0x00;}/*PosY 为偶数,即奇数场*/ else{YAddr=((PosY>>1)+288)*720+PosX+tempYbuffer; *(Uint8*)YAddr=0x00;}} /*黑色边框上面的边*/for(PosX=184;PosX<536;PosX++)for(PosY=112;PosY<118;PosY++) {/*PosY为偶数,即奇数场*/if(PosY%2==0){YAddr=(PosY>>1)*720+PosX+tempYbuffer;*(Uint8*)YAddr=0x00;}/*PosY为偶数,即奇数场*/else{YAddr=((PosY>>1)+288)*720+PosX+tempYbuffer;*(Uint8*)YAddr=0x00;}}/*黑色边框下面的边*/for(PosX=184;PosX<536;PosX++)for(PosY=458;PosY<464;PosY++){/*PosY为偶数,即奇数场*/if(PosY%2==0){YAddr=(PosY>>1)*720+PosX+tempYbuffer;*(Uint8*)YAddr=0x00;}/*PosY为偶数,即奇数场*/else{YAddr=((PosY>>1)+288)*720+PosX+tempYbuffer;*(Uint8*)YAddr=0x00;}}}3.运行结果及分析从显示器中可以看到,视频中间出现黑色方框,方框内颜色处理为灰色。

相关文档
最新文档