利用DSP实现图像的灰度处理
- 格式:doc
- 大小:2.54 MB
- 文档页数:10
动态差分阈值法动态差分阈值法是一种广泛应用于图像处理和计算机视觉领域的算法。
该算法通过调整阈值来实现对图像中物体的分割,以消除背景噪声和平滑轮廓。
下面将分步骤介绍该算法的实现过程。
第一步:灰度化灰度化是将图像从RGB颜色空间转换到灰度颜色空间的过程。
该过程使得算法处理的图像数据量更小,并且在保留有用信息的同时,可以减少数据维度。
在该算法的实现中,使用的是加权平均法,即将RGB三个通道的像素值加权平均,得到图像的灰度值。
第二步:滤波处理滤波处理是为了去除图像中的噪声和过度平滑的像素。
在动态差分阈值法中,使用的是高斯滤波器,它通过叠加多个高斯函数来平滑图像,并在保留边缘信息的同时,消除高频噪声。
对于一般情况,高斯滤波器的大小视图像的分辨率而定。
第三步:求取差分差分操作是该算法的关键步骤之一。
该步骤通过计算像素与相邻像素的差异值来确定图像中的边缘位置。
在动态差分阈值法中,使用的是一阶差分算子,在计算差分过程中,需要保证差分结果的有效性,即排除噪声的干扰。
第四步:动态阈值处理动态阈值处理是根据图像的差分值来进行分割处理的过程,该过程的目的是去除噪声和保留有限的边缘信息。
在动态差分阈值法中,采用的是一种自适应线性阈值化算法,通过设置参数来调整阈值的大小,从而实现对图像的自适应分割。
第五步:二值化最后一步是将阈值化后的图像进行二值化,即将阈值化后的像素按照设定的阈值进行二进制划分。
该过程通常涉及到的计算能力较小,因此算法的速度会比较快。
综上所述,动态差分阈值法在图像分割中发挥了重要的作用。
该算法的实现过程相对简单,通过灰度化、滤波处理、差分计算、动态阈值处理和二值化处理五个步骤,就能够得到一幅满足分割要求的二值化图像。
该算法在很多场合下都得到了广泛的应用,包括检测人脸、检测车辆等。
西安**大学通信与信息工程学院《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显示屏灰度调制算法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显示屏上图像的灰度级别的调节和控制,最终达到更好的显示效果。
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)以其在处理速度、价格和功耗上的无以替代的优势赢得了大多数用户的信任。
随着信息家电、网络通信和3G移动通信的飞速发展,作为最关键的核心器件的数字信号处理器,将会把人们带人高速信息化的时代。
而基于DSP的数字图像处理技术也随之DSP的发展而不断革新。
图像处理技术最初是在采用高级语言编程在计算机上实现的,后来还在计算机中加入了图像处理器(GPU),协同计算机的 CPU工作,以提高计算机的图形化处理能力。
在大批量、小型化和低功耗的要求提出后,图像处理平台依次出现了基于VLSI 技术的专用集成电路芯片((ASIC)和数字信号处理器((DSP)。
但基于DSP的图像处理系统以其可降低体积、重量与功耗,同时价格也较低,具有较高的可靠性,且易于维修与测试,对噪声与干扰有较强的抗干扰能力,越来越受到了人们的青睐。
图像处理与识别是DSP应用中的一个极其重要的领域。
随着近年来对图像高速实时处理的要求,基于DSP的数字图像处理技术发展迅速,在超声图像、红外图像、天文图像、医疗影像和军事等领域等到了广泛的应用。
其目前主要向着多DSP并行运算、多CPU实时系统、分布式实时系统等方向发展。
而一些新的数学方法像模糊论集的引入、神经网络理论的实用化以及分形几何学的应用尤其是小波变换正逐步应用于处理图像的DSP系统中。
这使得用于图像处理的DSP系统向着集成化、并行化、开发简易化和标准化方向发展。
1 、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. 学习使用MATLAB读取图像,并输出.h文件2. 学习使用TI IMGLIB库函数的使用方法3. 理解掌握Sobel算子进行图像边缘检测的DSP实现实验原理:两个具有不同灰度值的相邻区域之间总存在边缘,边缘是灰度值不连续的表现。
由于边缘是图像上灰度变化最剧烈的地方,边缘检测就是充分利用了这个特点,对图像各像素点进行微分或求二阶微分来确定边缘像素点。
一阶微分图像的峰值处对应着图像的边缘点;二阶微分图像的过零点处对应着图像的边缘点。
为了提取图像边缘,我们定义了图像的梯度为梯度算子,常用的梯度算子有Robert 算子、Sobel算子、Prewitt算子和拉普拉斯算子等。
实验步骤:一、对lenna.bmp图像的DSP处理1. 用MATLAB读取图像并输出.h文件。
本实验是对经典图像lenna.bmp的读取和数据分析。
程序如下:[I,map]=imread('lenna.bmp');imshow(I)It(:,:,1) = I(:,:,1)';I=double(I');fid=fopen('lenna.h','w');fprintf(fid,'/*lenna image 256*256 */\n\n'); fprintf(fid, sprintf('short lenna[256][256] = {\n')); for ii=1:65536fprintf(fid, '%3d,', I(ii)); if 0 == mod(ii, 8) fprintf(fid, '\n');endendfprintf(fid,'\n};\n'); fclose(fid);运行之后将产生一个lenna.h文件,文件内存取了256*256个数据,供CCS调用。
2. 使用TI IMGLIB实现Sobel边缘检测。
图像处理——灰度化、⼆值化、膨胀算法、腐蚀算法以及开运算和闭运算⼀、RGBRGB模式使⽤为图像中每个的RGB分量分配⼀个0~255范围内的强度值。
RGB仅仅使⽤三种颜⾊,R(red)、G(green)、B(blue),就能够使它们依照不同的⽐例混合,在上呈现16777216(256 * 256 * 256)种颜⾊。
在电脑中,RGB的所谓“多少”就是指亮度,并使⽤整数来表⽰。
通常情况下,RGB各有256级亮度,⽤数字表⽰为从0、1、2...直到255。
⼆、ARGB⼀种,也就是⾊彩模式附加上Alpha()通道,常见于32位的。
ARGB---Alpha,Red,Green,Blue.三、灰度化在RGB模型中,假设R=G=B时,则彩⾊表⽰⼀种灰度颜⾊,当中R=G=B的值叫灰度值,因此,灰度图像每⼀个像素仅仅需⼀个字节存放灰度值(⼜称强度值、亮度值),灰度范围为0-255。
⼀般有下⾯四种⽅法对彩⾊图像进⾏灰度化,详细⽅法參考: 四、⼆值化⼀幅图像包含⽬标物体、背景还有噪声,要想从多值的数字图像中直接提取出⽬标物体,最经常使⽤的⽅法就是设定⼀个全局的阈值T,⽤T 将图像的数据分成两部分:⼤于T的像素群和⼩于T的像素群。
将⼤于T的像素群的像素值设定为⽩⾊(或者⿊⾊),⼩于T的像素群的像素值设定为⿊⾊(或者⽩⾊)。
⽐⽅:计算每个像素的(R+G+B)/3,假设>127,则设置该像素为⽩⾊,即R=G=B=255;否则设置为⿊⾊,即R=G=B=0。
C#实现代码例如以下:public Bitmap binarization(){Bitmap bitImage = new Bitmap(pictureBox1.Image);//⼆值化pictureBox1中的图⽚Color c;int height = pictureBox1.Image.Height;int width = pictureBox1.Image.Width;for (int i = 0; i < height; i++){for (int j = 0; j < width; j++){c = bitImage.GetPixel(j,i);int r = c.R;int g = c.G;int b = c.B;if ((r + g + b) / 3 >= 127){bitImage.SetPixel(j, i, Color.FromArgb(255, 255, 255));}else{bitImage.SetPixel(j, i, Color.FromArgb(0,0,0));}}}return bitImage;}执⾏结果如图:左边为处理前,右边为⼆值化后效果。
实验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.运行结果及分析从显示器中可以看到,视频中间出现黑色方框,方框内颜色处理为灰色。