数字图像处理系统的设计.docx
《数字图像处理系统的设计.docx》由会员分享,可在线阅读,更多相关《数字图像处理系统的设计.docx(29页珍藏版)》请在冰豆网上搜索。
数字图像处理系统的设计
存档资料成绩:
华东交通大学理工学院
课程设计报告书
所属课程:
DSP原理及应用
设计题目:
数字图像处理系统的设计
分院:
电信分院
班级:
通信工程2008级2班
姓名:
骆玉春
学号:
20080210420224
指导教师:
李杰
实验地点:
实验楼五楼(DSP实验室506)
2010年6月20日
华东交通大学理工学院
课程设计任务书
专业:
08通信工程班级:
2班姓名:
骆玉春
一、课程设计题目
数字图像处理系统的设计
二、课程设计工作:
自2011年6月20日起至2011年6月23日止。
三、课程设计的内容要求:
1、学会如何使用CCS软件。
2、识别各种CCS软件中各元件及其图形表示和文字符号。
3、掌握C语言和汇编语言的编程思想以及它们的基本使用规则。
4、熟练掌握数字图像处理系统的工作原理,并读懂源程序。
5、按照编辑、编译、调试、运行的正确步骤,并正确进行编译和调
试。
6、学会分析运行结果图。
学生签名:
2011年6月20日
课程设计评阅意见
序号
项目
等 级
优秀
良好
中等
及格
不及格
1
课程设计态度评价
2
出勤情况评价
3
任务难度评价
4
工作量饱满评价
5
任务难度评价
6
设计中创新性评价
7
论文书写规范化评价
8
综合应用能力评价
综合评定等级
评阅人 职称
2011年月日
目录
课程设计任务书1
课程设计评阅意见2
目录3
第一章设计目的4
第二章设计原理4
2.1数字图像处理概述4
2.2常用的图像处理方法4
2.3图像的基本属性5
2.4灰度图像反色(invert)技术6
2.5灰度图像二值化原理及意义7
2.6数字图像处理技术的应用8
第三章设计步骤9
第四章设计源程序12
第五章设计系统原理图21
第六章课程设计心得23
参考文献24
第一章设计目的
1、了解数字图像处理的基本原理。
2、学习灰度图像反色处理技术。
3、学习灰度图像二值化处理技术。
第二章设计原理
2.1数字图像处理概述
数字图像处理是指将图像信号转换成数字信号并利用计算机对其进行处理的过程。
图像处理最早出现于20世纪50年代,当时的电子计算机已经发展到一定水平,人们开始利用计算机来处理图形和图像信息。
数字图像处理作为一门学科大约形成于20世纪60年代初期。
早期的图像处理的目的是改善图像的质量,它以人为对象,以改善人的视觉效果为目的。
图像处理中,输入的是质量低的图像,输出的是改善质量后的图像。
2.2常用的图像处理方法
常用的图像处理方法有图像增强、复原、编码、压缩等。
数字图像处理常用方法:
1、图像变换:
由于图像阵列很大,直接在空间域中进行处理,涉及计算量很大。
因此,往往采用各种图像变换的方法,如傅立叶变换、沃尔什变换、离散余弦变换等间接处理技术,将空间域的处理转换为变换域处理,不仅可减少计算量,而且可获得更有效的处理(如傅立叶变换可在频域中进行数字滤波处理)。
目前新兴研究的小波变换在时域和频域中都具有良好的局部化特性,它在图像处理中也有着广泛而有效的应用。
2、图像编码压缩:
图像编码压缩技术可减少描述图像的数据量(即比特数),以便节省图像传输、处理时间和减少所占用的存储器容量。
压缩可以在不失真的前提下获得,也可以在允许的失真条件下进行。
编码是压缩技术中最重要的方法,它在图像处理技术中是发展最早且比较成熟的技术。
3、图像增强和复原:
图像增强和复原的目的是为了提高图像的质量,如去除噪声,提高图像的清晰度等。
图像增强不考虑图像降质的原因,突出图像中所感兴趣的部分。
如强化图像高频分量,可使图像中物体轮廓清晰,细节明显;如强化低频分量可减少图像中噪声影响。
图像复原要求对图像降质的原因有一定的了解,一般讲应根据降质过程建立“降质模型”,再采用某种滤波方法,恢复或重建原来的图像。
4、图像分割:
图像分割是数字图像处理中的关键技术之一。
图像分割是将图像中有意义的特征部分提取出来,其有意义的特征有图像中的边缘、区域等,这是进一步进行图像识别、分析和理解的基础。
虽然目前已研究出不少边缘提取、区域分割的方法,但还没有一种普遍适用于各种图像的有效方法。
因此,对图像分割的研究还在不断深入之中,是目前图像处理中研究的热点之一。
5、图像描述:
图像描述是图像识别和理解的必要前提。
作为最简单的二值图像可采用其几何特性描述物体的特性,一般图像的描述方法采用二维形状描述,它有边界描述和区域描述两类方法。
对于特殊的纹理图像可采用二维纹理特征描述。
随着图像处理研究的深入发展,已经开始进行三维物体描述的研究,提出了体积描述、表面描述、广义圆柱体描述等方法。
6、图像分类(识别):
图像分类(识别)属于模式识别的范畴,其主要内容是图像经过某些预处理(增强、复原、压缩)后,进行图像分割和特征提取,从而进行判决分类。
图像分类常采用经典的模式识别方法,有统计模式分类和句法(结构)模式分类,近年来新发展起来的模糊模式识别和人工神经网络模式分类在图像识别中也越来越受到重视。
2.3图像的基本属性
亮度:
也称为灰度,它是颜色的明暗变化,常用0%~100%(由黑到白)表示。
以下三幅图是不同亮度对比。
亮度对图像色彩的影响
对比度:
是画面黑与白的比值,也就是从黑到白的渐变层次。
比值越大,从黑到白的渐变层次就越多,从而色彩表现越丰富。
对比度对图像色彩表现的影响
直方图:
表示图像中具有每种灰度级的象素的个数,反映图像中每种灰度出现的频率。
图像在计算机中的存储形式,就像是有很多点组成一个矩阵,这些点按照行列整齐排列,每个点上的值就是图像的灰度值,直方图就是每种灰度在这个点矩阵中出现的次数。
我们可以具体看一下下面两个不同图形的灰度直方图:
2.4灰度图像反色(invert)技术
反色就是形成底片效果。
如下图所示,
图1.原图图2.图1反色后的结果
图2为图1反色后的结果反色有时是很有用的,比如说,图1中黑色区域占绝大多数,这样打印起来很费墨,我们可以先进行反色处理再打印。
反色的实际含义是将R,G,B值反转。
若颜色的量化级别是256,则新图的R,G,B值为255减去原图的R,G,B值。
这里针对的是所有图,包括真彩图,带调色板的彩色图和灰度图。
针对不同种类有不同的处理。
先看看真彩图。
我们知道真彩图不带调色板,每个像素用3个字节,表示R,G,B三个分量。
所以处理很简单,把反转后的R,G,B值写入新图即可。
再来看看带调色板的彩色图,我们知道位图中的数据只是对应调色板中的一个索引值,我们只需要将调色板中的颜色反转,形成新调色板,而位图数据不用动,就能够实现反转。
灰度图是一种特殊的伪彩色图,只不过调色板中的R,G,B值都是一样的而已。
所以反转的处理和上面讲的一样。
这里,我想澄清一个概念。
过去我们讲二值图时,一直都说成黑白图。
二值位图一定是黑白的吗?
答案是不一定。
我们安装Windows95时看到的那幅setup.bmp是由蓝色和黑色组成的,但它实际上是二值图。
原来,它的调色板中的两种颜色是黑与蓝,而不是黑与白。
所以说二值图也可以是彩色的,只不过一般情况下是黑白图而已。
2.5灰度图像二值化原理及意义
灰度图像是指只含亮度信息,不含色彩信息的图像。
将彩色图像转化成为灰度图像的过程称为图像的灰度化处理。
彩色图像中的每个像素的颜色有R、G、B三个分量决定,而每个分量有255种值可取,这样一个像素点可以有1600多万的颜色的变化范围。
而灰度图像是R、G、B三个分量相同的一种特殊的彩色图像,一个像素点的变化范围为255种,所以在数字图像处理中一般先将各种格式的图像转变成灰度图像以使后续的图像的计算量变得少一些。
灰度图像的描述与彩色图像一样仍然反映了整幅图像的整体和局部的色度和亮度等级的分布和特征。
图像的灰度化处理可先求出每个像素点的R、G、B三个分量的平均值,然后将这个平均值赋予给这个像素的三个分量。
图像的二值化处理就是将图像上的点的灰度置为0或255,也就是使整个图像呈现出明显的黑白效果。
即将256个亮度等级的灰度图像通过适当的阀值选取而获得仍然可以反映图像整体和局部特征的二值化图像。
在数字图像处理中,二值图像占有非常重要的地位,特别是在实用的图像处理中,以二值图像处理实现而构成的系统是很多的,要进行二值图像的处理与分析,首先要把灰度图像二值化,得到二值化图像,这样子有利于再对图像做进一步处理时,图像的集合性质只与像素的值为0或255的点的位置有关,不再涉及像素的多级值,使处理变得简单,而且数据的处理和压缩量小。
二值图像在图像分析中应用非常广泛,二值图像就是指只有两个灰度级的图像,二值图像具有存储空间小,处理速度快,可以方便地对图像进行布尔逻辑运算等特点。
更重要的是,在二值图像的基础上,还可以进一步对图像处理,获得该图像的一些几何特征或者其他更多特征。
2.6数字图像处理技术的应用
随着计算机技术的发展,图像处理技术已经深入到我们生活中的方方面面,其中,在娱乐休闲上的应用已经深入人心。
图像处理技术在娱乐中的应用主要包括:
电影特效制作、电脑电子游戏、数码相机、视频播放、数字电视等电影特效制作:
自从20世纪60年代以来,随着电影中逐渐运用了计算机技术,一个全新的电影世界展现在人们面前,这也是一次电影的革命。
越来越多的计算机制作的图像被运用到了电影作品的制作中。
其视觉效果的魅力有时已经大大超过了电影故事的本身。
如今,我们已经很难发现在一部电影中没有任何的计算机数码元素。
电脑电子游戏:
电脑电子游戏的画面,是近年来电子游戏发展最快的部分之一。
从1996年到现在,游戏画面的进步简直可以用突飞猛进来形容,随着图像处理技术的发展,众多在几年前无法想象的画面在今天已经成为了平平常常的东西。
数码相机:
所谓数码相机,是一种能够进行拍摄,并通过内部处理把拍摄到的景物转换成以数字格式存放图像的特殊照相机。
与普通相机不同,数码相机并不使用胶片,而是使用固定的或者是可拆卸的半导体存储器来保存获取的图像。
数码相机可以直接连接到计算机、电视机或者打印机上。
在一定条件下,数码相机还可以直接接到移动式电话机或者手持PC机上。
由于图像是内部处理的,所以使用者可以马上检查图像是否正确,而且可以立刻打印出来或是通过电子邮件传送出去。
视频播放与数字电视:
家庭影院中的VCD,DVD播放器和数字电视中,大量使用了视频编码解码等图像处理技术,而视频编码解码等图像处理技术的发展,也推动了视频播放与数字电视象高清晰,高画质发展。
第三章设计步骤
1、首先,在PC机的D盘新建目录“tu”,并把“lena64.bmp”拷贝到该目录下。
然后启动CCS2.0用Project/Open打开“Exp12_cpu1”目录下“exp12.pjt”工程文件;并双击“exp12.pjt”及“Source”可查看源程序;并加载“exp12.out”;
2、在源程序“exp12..c”中,在三个“i=0”处设置三个断点;(如下图所示);
3、单击“Run”,程序运行到第一个断点处停止;
4、用View/Graph/Image打开一个图形观察窗口,以观察程序载入的“lena64.bmp”图像,该图像应保存在“D:
\Tu”目录中;按下图设置该图形观察窗口,观察变量y,为64*64的二维数组;
5、单击“Run”,程序运行到第一个断点处停止;
6、单击“Run”,程序运行到第二个断点处停止,这时可在图形观察窗口中,观察到原图象经反色处理后的结果图象;
7、单击“Run”,程序运行到第三个断点处停止;这时可在图形观察窗口中,观察到原图象经二值化处理后的结果图象,本程序中,二值化处理阀值设为128;
8、关闭各窗口,本实验结束。
第四章设计源程序
1、exp12.c
#include"math.h"
#include"stdio.h"
#defineIMAGE_WIDTH64
#defineIMAGE_HEIGTH64
main()
{FILE*fi;
inti,j,k;
inty[IMAGE_HEIGTH][IMAGE_WIDTH];
unsignedcharid[64];
Sys_Initial();
k=128;/*kisThresholdValue*/
fi=fopen("D:
\\tu\\Lena64.bmp","rb");
for(i=0;i<=16;i++)//把BMP格式的前16*64字节的头文件给过掉
{fread((char*)id,sizeof(char),IMAGE_WIDTH,fi);}
for(i=0;i{fread((char*)id,sizeof(char),IMAGE_WIDTH,fi);
for(j=0;j{y[i][j]=id[j];}
}
fclose(fi);
i=0;
for(i=0;i{for(j=0;j{y[i][j]=(255-y[i][j]);}
}
i=0;
for(i=0;i{for(j=0;j{y[i][j]=255*((255-y[i][j])/k);}
}
i=0;
i=0;
}
2、initial.asm
.global_Sys_Initial;系统初始化子程序
.text;以下程序分配到"text"段
_Sys_Initial:
nop
XAR3=#0H;初始化XAR3=0作为下面操作的地址指针
XDP=#0H;设置XDP的高7位地址DPH为0,这样就可以用*abs(#k16),访问MMR
watchdogtimertime-outeventoccurred)
mode)
AR3=*port(#4003H);读WDTCR2
AR3=AR3BFFFH;SETWDTCR2.14=0,关掉看门狗
*port(#4003H)=AR3
sequenceafteridle.
frequency
*port(#1c00H)=#2090H
AR3=#1c00H;AR3指向CLKMD的地址
Loop_pll:
TC2=bit(*AR3,#0)||readport();这条指令的功能和"bit(*port(*ar3),#0)"相同
if(!
TC2)gotoLoop_pll;测试CLKMD.0(LOCK)位,判断PLL是否已经切换到了PLL模式
native55mode
mode.
executinginstructionswhenHOLDhappned.
bit,0--enable,1--disable
saturationisperformed
sign-extensionmodeisOn
usedfornative55
usedfornative55
bit(ST1,#5)=#0;C54CM=0,C54x-CompatibleModeIsDisable
theARindirectaddressingmode0--DSPmode.
0--disable1--enable
bit
buserrorisdetected
0--InterPROMEnableboot
Nosaturationisperformed.
1--disable
bit(ST3,#2)=#0;CLKOUT引脚使能
MMC/SD2
MMC/SD1
writtenwith0.
AR3=#45H
*AR3=#0H;禁止IER1控制的中断.
AR3=#01H
*AR3=*AR3;清除IFR0的中断标志
AR3=#46H
*AR3=*AR3;清除IFR1的中断标志
bit(ST1,#11)=#1;INTM=1,DisableALLmaskInterrupt
enabled
enabled.IdlingEHPIandclockdomainisnotallowed
pullups/pulldownsenabled
signalisasserted
memorybus
CKEsignal
innormalmode
SDRAMself-refreshcommand
mode
mode
whenread
whenread
readstateofthisbitisundefined
whenread
AR3=*port(#0800H);SetMEMCEN=0,
bit(AR3,@#5)=#0;DisabledThesignalontheCLKMEMpinisheldhigh.
*port(#0800H)=ar0
*port(#0801H)=#0FFFFH
AR3=*port(#0800H)
AR3&=#0f2ffh
AR3|=#0200h
*port(#0800H)=AR3
width
read
reset)
width
*port(#0807H)=#5fffH
read
reset)
*port(#0808H)=#0000H
16-bitdatabuswidth
CARE
DON'TCARE
DON'TCARE
read
reset)
16-bitdatabuswidth
CARE
DON'TCARE
DON'TCARE
read
reset)
SDRAM
CPUclockfrequency
whenread
whenread
readstateofthisbitisundefined
whenread
repeat(#20)
nop_16
;延迟>6CLK
repeat(#20)
nop_16
;设置中断向量表的定位指针IVPDIVPH
AR3=#49H
*AR3=#0002H;IVPD=0002H
AR3+=#1
*AR3=#0002H;IVPH=0002H
;设置SYSR,设置CLKOUT输出时钟的频率
writes
by10
*port(#07fdH)=#0005H
*port(#3400H)=#0000H
repeat(#20)
nop_16
return
.end
3、link.cmd
MEMORY
{PAGE0:
MMR:
origin=000000h,length=0000c0h/*不要把任何段分配到这个区域,也是DARAM0的一部分*/
VECS:
origin=000200h,length=0001FFh/*中断向量表".VECTORS",也是DARAM0的一部分*/
DARAM0:
origin=000400h,length=001BFFh/*DARAM0剩余的地址范围(HPIACCESSIBLE)8KBYTES4KWORDS*/
DARAM1:
origin=002000h,length=001FFFh/*DARAM1(HPIACCESSIBLE)8KBYTES4KWORDS*/
DARAM2:
origin=004000h,length=001FFFh/*DARAM2(HPIACCESSIBLE)8KBYTES4KWORDS*/
DARAM3:
origin=006000h,length=001FFFh/*DARAM3(HPIACCESSIBLE)8KBYTES4KWORDS*/
DARAM4:
origin=008000h,length=001FFFh/*8KBYTES4KWORDS*/
DARAM5:
origin=00A000h,length=001FFFh/*8KBYTES4KWORDS*/
DARAM6:
origin=00C000h,length=001FFFh/*8KBYTES4KWORDS*/
DARAM7:
origin=00E000h,length=001FFFh/*8KBYTES4KWORDS*/
SARAM0:
origin=010000h,length=001FFFh/*8KBYTES4KWORDS*/
SARAM1:
origin=012000h,length=001FFFh/*8KBYTES4KWORDS*/
SARAM2:
origin=014000h,length=001FFFh/*8KBYTES4KWORDS*/
SARAM3:
origin=016000h,length=001FFFh/*8KBYTES4KWORDS*/
SARAM4:
origin=018000h,length=001FFFh/*8KBYTES4KWORDS*/
SARAM5:
origin=01A000h,length=001FFFh/*8KBYTES4KWORDS*/
SARAM6:
origin=01C000h,length=001FFFh/*8KBYTES4KWORDS*/
SARAM7:
origin=01E000h,length=001FFFh/*8KBYTES4KWORDS*/
SARAM8:
origin=020000h,length=001FFFh/*8KBYTES4KWORDS*/
SARAM9:
origin=022000h,length=001FFFh/*8KBYTES4KWORDS*/
SARAM10:
origin=024000h,length=001FFFh/*8KBYTES4KWORDS*/
SARAM11:
origin=026000h,length=001FFFh/*8KBYTES4KWORDS*/
SARAM12