实验二 利用DSP实现图像的灰度处理_第1页
实验二 利用DSP实现图像的灰度处理_第2页
实验二 利用DSP实现图像的灰度处理_第3页
实验二 利用DSP实现图像的灰度处理_第4页
实验二 利用DSP实现图像的灰度处理_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 Leading Digital Signal Processing北京交通大学电子信息学院北京交通大学电子信息学院1利用利用DSP实现图像的灰度处理实现图像的灰度处理实验二实验二 Leading Digital Signal Processing北京交通大学电子信息学院北京交通大学电子信息学院2(一)实验目的(一)实验目的1 1了解图像灰度处理基本原理和方法。了解图像灰度处理基本原理和方法。2 2了解利用了解利用MatlabMatlab实现图像的灰度处理的方法。实现图像的灰度处理的方法。3 3掌握掌握TMS320C6000 CSLTMS320C6000 CSL库的使用。库的使用。 4 4掌握

2、利用掌握利用DM642DM642实现图像的灰度处理的方法。实现图像的灰度处理的方法。 Leading Digital Signal Processing北京交通大学电子信息学院北京交通大学电子信息学院3(二)实验原理(二)实验原理常用的色彩空间有RGB和YUV色彩空间。采用RGB编码方法,每种颜色都可用三个变量来表示红色、绿色以及蓝色的强度。 YUV主要用于优化彩色视频信号的传输,可兼容早期的黑白显示系统。因为RGB要求三个独立的视频信号同时传输,与RGB视频信号传输相比,YUV只需占用极少的带宽。RGB编码方法缺乏与早期黑白显示系统的良好兼容性,因此很多厂商经常将RGB转换成YUV颜色空间,

3、处理完成再根据需要换回RGB格式,以便在计算机上显示彩色图形。 Leading Digital Signal Processing北京交通大学电子信息学院北京交通大学电子信息学院4 YCbCr是YUV的一个特例。Y是亮度值信号,Cb、Cr是色差信号。图像处理与传输中,只传输和存储Y和Cb、Cr值,而且Cb和Cr的分辨率可以比Y低。这就减少了表示图像的数据量。在本图像处理实验中采用YCbCr 4 2 2的格式。 色度采用比亮度低的分辨率进行采样是一种简单而有效的压缩办法。灰度图(Grayscale image)是指将图像按照灰度等级的数目来划分后形成的图像,在黑色与白色之间还有不同级的颜色深度。

4、灰度模式最多使用256级(8位)灰度来表现图像,图像中的每个像素有位于0255之间的某个亮度值(0:黑色、255:白色,灰度 值 越大 ,点 越亮 )。 如果将一个YUV图像转换为灰度图像,可以将U和V分量设置为0,同时保持Y不变就可以了。将彩色图像变为灰度图的实现方法很多。一个比较简单的方法是,将CbCr分量的值赋为0 x80,Y分量值保持不变即可。 Leading Digital Signal Processing北京交通大学电子信息学院北京交通大学电子信息学院5(三)(三) Matlab实现灰度处理实现灰度处理Matlab中提供函数rgb2gray()可以将RGB图像或色图(colorm

5、ap)转换为灰度图。YUV图像转换为灰度图像的Matlab程序% graym.m I=imread(lenna.bmp); %读取原图像figure(1);imshow(I);title(原始图像);J=0.299*I(:,:,1)+0.587*I(:,:,2)+0.114*I(:,:,3); %将YUV图像转化为灰度图像%利用公式Y = 0.299R + 0.587G + 0.114B%J = rgb2gray(I); %也可以使用此函数将RGB图像转换为灰度图像figure(2);imshow(J);title(灰度图像); Leading Digital Signal Processin

6、g北京交通大学电子信息学院北京交通大学电子信息学院6将graym.m文件和bmp图像文件复制到“我的文档MATLAB”文件夹下面。在Matlab中运行该程序,生成下面的图像 Leading Digital Signal Processing北京交通大学电子信息学院北京交通大学电子信息学院7(四)(四)灰度处理灰度处理DSP程序设计程序设计 在视频显示任务的循环中,程序首先将捕获到的视频数据YCbCr读入输入缓冲区,再对输入缓冲区的数据进行图像灰度处理,处理后的数据放入到输出缓冲区。然后将输出缓冲区的数据放入显示缓冲区。实验一 “DSP图像采集与传输”工程已经给出了完整的图像采集与显示程序,本实

7、验只需要将灰度处理算法程序嵌入到dm642main.c中即可,而其它程序可以不作改动。 Leading Digital Signal Processing北京交通大学电子信息学院北京交通大学电子信息学院8PAL制式的模拟图像转换为数字图像后包含576行*720列个像素,一帧图像分解为奇数场和偶数场两幅图像 ,分别包含288行*720列个像素。像素亮度值在Y(亮度)缓冲区中的序号=缓冲区的起始地址+所在行号*每行的像素数+像素的列位置像素色度值在Cb、Cr(色度)缓冲区中的序号=缓冲区的起始地址+所在行号*每行的像素数/2+像素的列位置/2图像缓冲区包括图像采集缓冲区、图像临时缓冲区和图像显示缓

8、冲区。每个缓冲区包括图像亮度缓冲区Y、图像色度缓冲区Cb、图像色度缓冲区Cr。其中色度缓冲区的大小是亮度缓冲区的一半,每个像素对应的Y(亮度)、Cb、Cr(色度)值在缓冲区中位置序号如下。1、图像灰度处理部分程序代码及分析、图像灰度处理部分程序代码及分析 Leading Digital Signal Processing北京交通大学电子信息学院北京交通大学电子信息学院9 Leading Digital Signal Processing北京交通大学电子信息学院北京交通大学电子信息学院10图像灰度处理算法图像灰度处理算法程序流程图程序流程图 Leading Digital Signal Proc

9、essing北京交通大学电子信息学院北京交通大学电子信息学院11图像缓冲区图像缓冲区/*采集与显示缓冲区的首址*/Uint32 capYbuffer = 0 x80000000;Uint32 capCbbuffer = 0 x800675c0;Uint32 capCrbuffer = 0 x8009b0a0;Uint32 disYbuffer = 0 x80100000;Uint32 disCbbuffer = 0 x801675c0; Uint32 disCrbuffer = 0 x8019b0a0;Uint32 tempYbuffer = 0 x80200000; /临时Uint32 te

10、mpCbbuffer = 0 x80300000; /临时 Uint32 tempCrbuffer = 0 x80400000; /临时采集缓冲区显示缓冲区临时缓冲区 Leading Digital Signal Processing北京交通大学电子信息学院北京交通大学电子信息学院12在dm642main.c中图像显示(bt656_display_start(vpHchannel0);)之前添加:removeColor();。函数体如下:void removeColor() /*灰度显示处理算法程序*/int i,j;/奇数行for(i=intALines;iintDLines;i+)/行数

11、for(j=intAPixels/2;j 1) + j) = 0 x80; *(Uint8 *)(tempCrbuffer + i * (numPixels 1) + j) = 0 x80; /偶数行for(i=numLines/2+intALines;inumLines/2+intDLines;i+)/行数 for(j=intAPixels/2;j 1) + j) = 0 x80; *(Uint8 *)(tempCrbuffer + i * (numPixels 1) + j) = 0 x80; 灰度变换程序灰度变换程序 Leading Digital Signal Processing北京

12、交通大学电子信息学院北京交通大学电子信息学院132 2、CSLCSL初始化初始化TMS320C6000系列芯片支持库(CSL)是一组应用程序接口,用于配置和控制片上外设。使用CSL可以为开发者省去很多的硬件相关工作。包括简化外设使用,器件层的互相兼容,缩短开发周期,易移植和标准化。CSL提供了一个用于配置和控制片上外设的C语言接口,此接口由各个分立的模块组成,并被编译保存为库文件。每个模块对应一个单独的外设,除了个别提供通用程序支持的模块,如:中断请求模块(IRQ)(包括中断管理接口函数)和用于芯片全局设置的CHIP模块。CSL提供两种类型的函数来初始化外设寄存器:PER_config()和P

13、ER_configArgs()。PER_config()初始化CSL模块的外设控制寄存器。该函数需要一个地址参数来指定外设寄存器的地址。每个模块的配置结构数据类型定义中包含PER_config()函数。 Leading Digital Signal Processing北京交通大学电子信息学院北京交通大学电子信息学院14PER_config()函数的结构PER_config MyConfig = Reg0, Reg1 ; PER_config(&MyConfig);PER_configArgs()将单个寄存器值写入寄存器中,比如:PER_configArgs(reg0, reg1,);调用其它任何CSL API函数之前必须先调用CSL_int()函数。如果使用CSL库,在工程中添加cslDM642.lib,头文件需要包含csl.h,在文件中添加CSL_init(); Leading Digital Signal Processing北京交通大学电子信息学院北京交通大学电子信息学院15(五)实验思考题(五)实验思考题1在

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论