条形码的识别图像处理报告解析

条形码的识别图像处理报告解析
条形码的识别图像处理报告解析

华侨大学厦门工学院图像通信课程设计报告

题目:基于数字图像处理的条形码识别专业、班级:

学生姓名:

学号:

指导教师:

分数:

目录

一、设计任务及要求 (3)

二、设计原理及设计方案 (3)

2.1、条码译码原理 (3)

2.2条码译码方案 (4)

三、设计步骤与结果 (10)

3.1设计步骤 (10)

3.2结果分析 (11)

四、课程设计总结 (15)

五、心得体会 (15)

六、参考文献 (16)

附录一、源程序 (17)

附录二、成绩评定表 (25)

一、设计任务及要求

本课程设计研究的是基于数字图像处理的EAN-13条形码识别算法,通过工具平台MATLAB 实现。其中图像处理部分是条码识别重要的前期工作,利用MATLAB 强大的图象处理工具箱实现图像的读入、加噪仿真、滤波、二值化处理等工作,最终得到高质量的二值化图像。条码识别就是在二值图像的基础上实现,二值图像的质量直接关系到条码能否正确识读。

二、设计原理及设计方案

2.1、条码译码原理:

如图1-1所示是EAN-13条码的一个字符。条、空宽度的定义如下:图中1C 、

2C 、3C 、4C 表示每个字符中四个相邻条、空的宽度,T 表示一个字符的宽度。

图1-1 EAN-13条码宽度的定义

设一个字符中单位模块的宽度为n ,则单位模块的宽度: n=T /7

T=1C +2C +3C +4C

由于条码条、空宽度1C 、2C 、3C 、4C 已知,设条码条、空分别占单位模块的个数为i m ,则:

i m =i C /n(其中i 取1、2、3、4)

因此,由mi 可知道条码的编码。例如: (1)若1m =2、2m =2、3m =2、4m =1;

条码的排列为条-空-条-空,则可知条码编码为1100110,是右侧偶性字符1;

(2)若1m =1、2m =2、3m =1、4m =3;

条码的排列为空-条-空-条,则可知条码编码为0110111,是右侧奇性字符8。 2.2条码译码方案: 方案一:宽度测量法

在图像方式的译码过程中,宽度的测量不再采用传统的脉冲测量法,而是通过记录每个条或空的宽度中所含象素的个数来确定实际的条/空宽度,从而确定整个条码符号所代表的信息。

方案二:平均值法

对条码符号图像中从起始符到终止符整个宽度进行测量,然后除以95(标准宽度),求出单位模块所含的像素列宽,再分别测量各个条空的实际宽度(此宽度以单位宽度为单位计算)。

方案三:相似边距离的测量方法

这种方法的设计思路是通过对符号中相邻元素的相似边之间距离的测量来判别字符的逻辑值,而不是由各元素宽度的实际测量值来判别。

前两种方案对条码图像的要求非常高,因为它们都是测量各元素符号的实际宽度,然后根据查表法得到所代表的码值。如果实际测量值与标准值存在一点偏差,就不能实现正确译码。而第三种方案正是有效的解决了这一问题,因此本文采用相似边距离测量的方法来实现译码功能。下面就简要说明一下这一方法。

由原理知,要想辨识一个条码,必须先测量条码条、空宽度1C 、2C 、3C 、

4C 以及一个字符的宽度T 。条码图像经过预处理后得到的是二值图像,该点的

颜色信息在阈值变换时已经定义,用255和0表示白和黑色。我们从条码的左边开始取点,若遇到点的灰度值由255变到0即由点的颜色由白色变为黑色,则表示检测到条,记录下该点的坐标值,如果点的颜色由黑色变为白色,则表示检测到空,记录下该点的坐标值。这样经过扫描后得到各个颜色变化点的坐标,然后将相邻两点的横坐标相减得到各个条、空的宽度.由前面所述EAN-13条码的组成知:一个由占3个条空的起始符、3个条空的终止符、4个条空的左侧数据符、5个条空的中间分隔符、20个条空的右侧数据符、4个条空的校验符组成。所以,

整个条码字符占的条空总数为59,若条码字符没有发生几何畸变,一行扫描应记录的坐标数为60个。而对于有几何畸变的条码图像,例如条码污染、条码断裂、条码瑕疵等,该扫描行的坐标数将肯定大于60或小于60,这时将不记录该扫描行,对此行不处理。这样利用图像统计方法,逐行扫描图像,获取条码图像信息,比起只由一行获取信息的方式可靠性更高,这样即使个别噪声点存在并不影响图像信息的获取。 (1)条码宽度的计算:

设条码字符颜色由黑变为白或由白变为黑(由“0”变为“1”或由“1”变为“0”)的各点坐标为1x 、2x 、 ……、60x 。则一行扫描的条空宽度(像素)分别为:

1c =2x -1x 、2c =3x -2x 、……、59c =60x -59x 。

由上述图像条码译码理论可总结出条码条空宽度计算步骤,如图1-2所示:

图1-2 条码条空宽度计算

在MATLAB 中采用读取像素的方法实现。经过二值化后得到一个二值化图象矩阵bw 。简单起见,可以读取矩阵bw 的中间一行,得到一个向量A 。为了提高可靠性,我们也可逐行扫描。

[h,l]=size(bw); %得到二值图像bw 的大小 A=bw(round(h/2),:);

A 中只有0和1表示黑与白。读取其中的元素,发生变化记下坐标(像素)存入另一个向量x 中,x 元素前后依次相减存入向量y 中得条码宽度。 (2)条码字符的判别—相似边距法:

理论上条形码字符的逻辑值应该由条形码的实际宽度来判断,而相似边距离方法的设计思想通过对符号中相邻元素的相似边之间距离的测量来判别字符的逻辑值,而不是由元素宽度的实际值来判别。此种方法的优点是:即使条码质量存在缺欠,使得实际测量值和条码应该具有的理论值有较大的偏差,仍然可以根据相似边的距离能够正确解释。图1-3给出了相似边之间的距离,则图中1t ,2t ,

3t ,4t ,5t ,6t ,7t (归一化值)为条形码相似边距离。本文采用归一化理论,

用一种相似边距离归一化的方法对字符进行判别。该方法即使条码印刷质量有偏差,仍能正确对条码进行识读。

图1-3 相似边之间的距离 图1-4 条码字符宽度示图

首先见图1-4各种宽度的定义: 1C , 2C , 3C , 4C 表示每个字符中四个相邻条、空的宽度,T 表示一个字符的宽度,1t ,2t 为相似边之间的距离,则用下列值i T (i=1,2)来定义1T 与2T 的归一化值。

测量7个宽度值T ,1t ,2t ,3t ,4t ,5t ,6t ;然后将测量值1t ,2t ,3t ,

4t ,5t ,6t 转换为常数值1T ,2T ,3T ,4T ,5T ,6T 即T 序列值,它代表了

这些测量值的整数模块宽,以下方法用于i 序列值的求取:

若1.5≦i t ≦2.5,那么i T =2 若2.5≦i t ≦3.5,那么i T =3 若3.5≦i t ≦4.5,那么i T =4 若4.5≦i t ≦5.5,那么i T =5

表1-1列出了正向译码时,EAN-13条码字符值与归一化值(1T ,2T )的对应关系。

表1-1中“E”表示偶字符,“O”表示奇字符。

EAN-13码字符编码与归一化值(1T ,2T )的对应关系见表1-2。

表1-1 EAN-13条码字符与归一化值

表1-2 EAN-13字符编码与归一化值

可以看到条形码编码和归一化值在多数情况下呈现一一对应的关系,只要确定了归一化值就能确定字符值,但是有四种情况例外,在表1-2中知,左侧奇字符和右侧偶字符1,7归一化值均为44,左侧奇字符和右侧偶字符2,8归一化值均为33,左侧偶字符1,7归一化值均为34,左侧偶字符2,8归一化值均为43。这两种情况可以在判别字符时根据1C ,2C ,3C ,4C 进一步判别,根据它们条空宽度特点进行判别。有1728字符标准条空宽度值的特点知:对于左侧奇字符、右侧偶字符1和7可通过3C 与4C 作比较,3C >4C 者为字符1,反之为7;对于左侧奇字符、右侧偶字符2和8可通过2C 与3C 作比较,2C >3C 者为字符8,反之为2;对于左侧偶字符1和7可通过1C 与2C 作比较,1C >2C 者为字符7,反之为1;对于左侧偶字符2和8可通过2C 与3C 作比较,2C >3C 者为字符2,反之为8。

由上述条码字符识别理论可总结出相似边距离测量法的一般步骤。由条码宽度的

计算我们得到了各个条、空的宽度(像素),并通过计算n=T /7,T =1C +2C +3C +4C 得到单位模块的宽度(像素)

。各个条空的宽度除以单位模块的宽度就是归一化的条空宽度。而为了方便译码,我们除去起始符3个条空,中

间分隔符5个条空,终止符3个条空,对剩下的48个条空每4个条空为一组进行译码。计算相似边之间的距离1t 、2t 从而得到归一化(1T ,2T )。最后查表可得条码字符。为检验译码的正确性利用校验位对码字进行校验。流程图如图1-5 和1728判别子程序流程如图1-6。

图1-5 字符判别流程图

图1-6 1728判别子程序流程图

三、设计步骤与结果

3.1设计步骤

对于一个条码图像我们先要对其进行一定的处理才能达到正确译码的目的。而要对其进行处理,首先是要将其读入。由于有噪声的存在,必须对其进行滤波。也可以人为地加入一定类型的噪声仿真,然后用合适的滤波方法进行滤波,这样有助于理解各种滤波方法所针对的噪声类型。最后就是要二值化,得到二值图像。条码图像预处理流程图如图1-7所示。

图1-7 条码图像预处理流程图

⑴ MATLAB中利用函数imread来实现图像文件的读取操作。图1-8是首次需要处理的条码图片。

图1-8 需要处理的条码

一般情况下,通过imread函数读取的大多数图像都是8位的。当把这些图像加载到内存中时,MATLAB就将其存储在类uint8中。此外,MATLAB还支持16位的PNG和TIFF图像。当用户读取这类图像时,MATLAB就将其存储在类uint16中。而对于索引图像来说,即使图像矩阵的本身为uint8或uint16,imread 函数仍将颜色映射表读取并存储在一个双精度浮点类型的矩阵中。

例如:I=imread('008.bmp');

该语句可将条码图像读入内存,并以矩阵形式存储。

⑵MATLAB的图像处理工具箱提供imnoise函数,可以用该函数给图像添加不同种类的噪声。该函数的调用格式如下:

J=imnoise(I,‘type’,parameters)

表1-3列出了imnoise函数能够产生的五种噪声及其对应参数。

表1-3 imnoise函数支持的噪声种类及参数说明

例如:J=imnoise(I,'salt & pepper',0.01);

该语句实现在条码图像I中加入椒盐噪声。

⑶条码图像被采集进入计算机,由于设备、以及传输过程中的各种因素的影响,一些噪声将会对图像的质量产生影响。任何一幅未经处理的原始图象,都存在一定程度的噪声干扰。不同的噪声干扰,处理方法不同。影响条码图像质量最典型的噪声是椒盐噪声。椒盐噪声的特点是此干扰在图像中是以孤立点的形式

存在的。

针对噪声的类型,采用中值滤波。中值滤波是一种非线性信号处理方法。可以克服线性滤波器如最小均方滤波,平均值滤波(平滑滤波)等所带来的图像细节模糊。而且对于脉冲干扰及点状噪声有良好抑制作用,能较好保持图像边缘。它可以起到既消除噪声又保持图像细节的作用。

为了达到好的滤波效果应选择合适的滤波窗口。从条码图像的特征来讨论选择采用的中值滤波窗口。条码图像的特点在于是由纵向一定宽度黑白条空组成,我们建立不同大小的模板,对含有噪声的图像进行滤波处理,比较它们滤除噪声干扰的效果。

在MATLAB 中可以使用imfilter 函数或filter2函数调用创建好的滤波器(可以是预定义滤波器,也可以是自定义滤波器)对图像进行滤波。

指定了一个阈值T 之后,将图像中的像素与阈值作比较,如果图像中某像素的灰度值小于该阈值,则将该像素的灰度值设置为0,否则灰度值设置为255。

按下式对图像进行处理可得到二值图像g(x,y):

255(,)0

g x y ?=?? (,)(,)f x y T f x y T ≥<

在MATLAB 中,通过使用函数graythresh 和im2bw 创建一个新的二值图像bw :

level=graythresh(L); bw=im2bw(L,level);

根据上述译码理论,采用相似边距离测量方法对图1-8预处理后的条码图像(二

值图像)进行译码,得到如下所示译码结果:

图1-9是第二张需要处理的条码图片。

图1-9 需要处理的条码

根据条码图像预处理的理论知识编译相关的MATLAB程序,得到如图1-10所示的图像预处理结果。

图1-10 条码图像预处理

得到如下所示译码结果:

3.2结果分析

误码率方面,一般情况下条码都能够正确识读。但在由一个字符的归一化的相似边距离1t 、2t 转换为T 序列值1T 、2T 时,如果1t 、2t 的值为2.5、3.5、4.5之一,系统将不能正确的将其转换为T 序列值,此时存在最大的误码率,条码几乎不能被正确识读。所以应该尽量避免此种情况的发生,这就要求我们做好图像的预处理工作,防止条码线条过度展宽或细化。

需要指出的是,在实际的译码中还存在着正向译码和反向译码的情况,两种情况下字符编码对应着不同的归一化值。因此译码前需要判别译码方向。本设计直接采用正向译码。最后,译码是编码的反过程,编码技术的熟练掌握对译码工作有着事半功倍的效果。

四、课程设计总结

通过多次对不同EAN-13条码的识读,证明该条码检测系统速度快、效率高、而误码率却很低,即使在图像预处理上达不到理想的效果,条码仍能正确识读。这是因为我们选择了相似边距离测量的方法。可见,影响条码识别效果的不仅仅是条码图像预处理效果,译码方法更是不可忽视的重要原因。相似边距离测量方法有着其它译码方法无可比拟的优势,它不是根据条码条空宽度的实际值来判别,而是通过所谓的相似边距离来判别。因此,即使条码质量存在欠缺,仍然能够根据相似边距离正确解释条码,有着很强的对实际情况的适应性。

五、心得体会

在对条码图像作相应的图像预处理之后,对得到的二值条码图像利用上述条码识别算法在MATLAB软件环境下编写了相应的软件程序。通过实验,识别效果不错,误码率低,提高了条码的识别率。本次设计在译码方法上进行了比较选择,确定了相似边距离的测量方法的优越性。这种方法的设计思路是通过对符号中相邻元素的相似边之间距离的测量来判别字符的逻辑值。另外用软件实现条码的识别比硬件具有更好的抗噪声性能,且速度快,效率高。

尽管如此,设计中也遇到了很多的问题有待进一步的解决和探索研究。本设计只是对质量较好的条码图像进行一般性处理,但实际中的图像并都不是这么理想,例如条码污染、条码断裂、条码瑕疵等。这些需要进行特殊的图像处理过程才能达到译码的目的。如果条码被污染了要进行修复,条码发生几何畸变要进行图像矫正等等。只有考虑到更多的方面才能提高系统的性能和适应性,对一定质量范围内的条码图像都能进行有效的处理。

在设计中,由于本人在图像处理上的造诣不高,对很多细节、常识方面了解不够导致问题的出现,而且没能采取科学的方法进行错误分析、排查,使得问题小却难以解决。今后在做类似的工作的时候要注重基础知识的学习,并讲究科学的方法。做软件编程的对所用语言基础要够熟练掌握并能借助一定的参考资料进一步充实自己,提高自己。

六、参考文献

[1] 邹永星.条码国家标准汇编[M].北京.中国标准出版社.2004:12-21

[2] 中国自动识别技术协会.条码技术基础[M] .武汉.武汉大学出版社.2008:15-16

[3] 黄红, 黄才骏.条码的奥秘[M]. 北京.中国铁道出版社.2000:69-72

[4] 王雅静.EAN-13 条码图像辨识方法的研究[D].青岛.山东科技大学.2003

[5]唐莉,刘富强.条码国家标准汇编[M].北京.中国标准出版社.2004:11-25

[6]张铎,王耀球.条码技术与电子数据交换[M].北京.中国铁道出版社.1998:13-16 [7薛红.条码技术及商业自动化系统-条码技术[M] .北京.中国轻工业出版社.2008:67-69

附录一、源程序

%function code = barcode(pic) %条形码识别

close all

check_left = [13,25,19,61,35,49,47,59,55,11;... %左边数据编码,奇 39,51,27,33,29,57, 5,17, 9,23]; %左边数据编码,偶check_right = [114,102,108,66,92,78,80,68,72,116]; %右边数据编码first_num = [31,20,18,17,12,6,3,10,9,5]; %第一位数据编码

bar = imread('123.bmp'); %读输入条形码图片

bar_Gray = rgb2gray(bar); %将RGB图片转换灰度图

figure(1)

imshow(bar)

title('条形码图')

figure(2)

subplot(121),imshow(bar_Gray),title('灰度图')

subplot(122),imhist(bar_Gray),title('灰度图直方图')

bar_Gray= imnoise(bar_Gray, 'salt & pepper', 0.02);

figure(3)

subplot(121); imshow(bar); title('原图像');

subplot(122); imshow(bar_Gray); title('添加椒盐噪声图像');

bar_Gray = medfilt2(bar_Gray); %进行3*3模板中值滤波figure(4)

imshow(bar_Gray)

title('中值滤波之后图片')

%for i=1:m %对图像进行二值化处理

%for j=1:n

% if bar_Gray(i,j)>150 %选择适当的阈值进行二值化处理 % bar_10(i,j) = 1;

%else

% bar_10(i,j) = 0;

%end

%end

%end

[a_hist x] = imhist(bar_Gray);

hist_max = [];

if a_hist(1)>a_hist(2)

hist_max = [hist_max 1];

end

x = max(x);

for i=2:x

if a_hist(i)>a_hist(i-1) && a_hist(i)>a_hist(i+1) hist_max = [hist_max i];

end

end

if a_hist(x)

hist_max = [hist_max x+1];

end

[m,n] = size(hist_max);

k = 0;

max_1 = 0;

max_2 = 0;

for i=1:n

if k

k = a_hist(hist_max(i));

max_1 = hist_max(i);

end

end

temp = a_hist(max_1);

a_hist(max_1) = 0;

k = 0;

for i=1:n

if k

k = a_hist(hist_max(i));

max_2 = hist_max(i);

end

end

a_hist(max_1) = temp;

if max_1>max_2

k = max_1;

max_1 = max_2;

max_2 = k;

end

T = max_1;

k = a_hist(max_1);

for i=max_1:max_2

if k>a_hist(i)

k = a_hist(i);

T = i;

end

end

[m,n] = size(bar_Gray); %求灰度图的大小

for i=1:m %对图像进行二值化处理

for j=1:n

if bar_Gray(i,j)>T %选择适当的阈值进行二值化处理 bar_10(i,j) = 1;

else

bar_10(i,j) = 0;

end

end

end

figure(5)

imshow(bar_10);

title('二值化图')

l = 0; %检测59根条形码

for i=1:m

k = 1;

l = l+1;

for j=1:n-1

if bar_10(i,j)~=bar_10(i,j+1) %比较同一行相邻两点的颜色是否一致 %bar_x(l,k) = i;

bar_y(l,k) = j; %记录转折点的纵坐标

k = k+1; %准备记录下一个数据点

end

if k>61 %点数大于60,该行应该删掉

l = l-1;

break

end

end

if k<61 %点数小于60,该行应该删掉

l = l-1;

end

end

[m,n] = size(bar_y);

if m<=1 %查看条形码是否有效

code = '0';

fprintf(1,'GameOver!\n');

return

end

for i=1:m %计算每根条形码的宽度

for j=1:n-1

bar_num(i,j) = bar_y(i,j+1) - bar_y(i,j);

数字图像处理实验报告完整版

数字图像处理 实验一 MATLAB数字图像处理初步 一、显示图像 1.利用imread( )函数读取一幅图像,假设其名为lily.tif,存入一个数组中; 2.利用whos 命令提取该读入图像flower.tif的基本信息; 3.利用imshow()函数来显示这幅图像; 实验结果如下图: 源代码: >>I=imread('lily.tif') >> whos I >> imshow(I) 二、压缩图像 4.利用imfinfo函数来获取图像文件的压缩,颜色等等其他的详细信息; 5.利用imwrite()函数来压缩这幅图象,将其保存为一幅压缩了像素的jpg文件,设为lily.jpg;语法:imwrite(原图像,新图像,‘quality’,q), q取0-100。 6.同样利用imwrite()函数将最初读入的tif图象另存为一幅bmp图像,设为flily.bmp。7.用imread()读入图像Sunset.jpg和Winter.jpg; 8.用imfinfo()获取图像Sunset.jpg和Winter.jpg的大小; 9.用figure,imshow()分别将Sunset.jpg和Winter.jpg显示出来,观察两幅图像的质量。 其中9的实验结果如下图:

源代码: 4~6(接上面两个) >>I=imread('lily.tif') >> imfinfo 'lily.tif'; >> imwrite(I,'lily.jpg','quality',20); >> imwrite(I,'lily.bmp'); 7~9 >>I=imread('Sunset.jpg'); >>J=imread('Winter.jpg') >>imfinfo 'Sunset.jpg' >> imfinfo 'Winter.jpg' >>figure(1),imshow('Sunset.jpg') >>figure(2),imshow('Winter.jpg') 三、二值化图像 10.用im2bw将一幅灰度图像转化为二值图像,并且用imshow显示出来观察图像的特征。实验结果如下图: 源代码: >> I=imread('lily.tif') >>gg=im2bw(I,0.4); F>>igure, imshow(gg)

数字图像处理四个实验报告,带有源程序

数字图像处理 实验指导书 学院:通信与电子工程学院 专业:电子信息工程 班级: 学号: 姓名: XX理工大学

实验一 MATLAB数字图像处理初步 一、实验目的与要求 1.熟悉及掌握在MATLAB中能够处理哪些格式图像。 2.熟练掌握在MATLAB中如何读取图像。 3.掌握如何利用MATLAB来获取图像的大小、颜色、高度、宽度等等相关信息。 4.掌握如何在MATLAB中按照指定要求存储一幅图像的方法。 5.图像间如何转化。 二、实验原理及知识点 1、数字图像的表示和类别 一幅图像可以被定义为一个二维函数f(x,y),其中x和y是空间(平面)坐标,f 在任何坐标处(x,y)处的振幅称为图像在该点的亮度。灰度是用来表示黑白图像亮度的一个术语,而彩色图像是由单个二维图像组合形成的。例如,在RGB彩色系统中,一幅彩色图像是由三幅独立的分量图像(红、绿、蓝)组成的。因此,许多为黑白图像处理开发的技术适用于彩色图像处理,方法是分别处理三副独立的分量图像即可。 图像关于x和y坐标以及振幅连续。要将这样的一幅图像转化为数字形式,就要求数字化坐标和振幅。将坐标值数字化成为取样;将振幅数字化成为量化。采样和量化的过程如图1所示。因此,当f的x、y分量和振幅都是有限且离散的量时,称该图像为数字图像。 作为MATLAB基本数据类型的数值数组本身十分适于表达图像,矩阵的元素和图像的像素之间有着十分自然的对应关系。 图1 图像的采样和量化 根据图像数据矩阵解释方法的不同,MA TLAB把其处理为4类: 亮度图像(Intensity images) 二值图像(Binary images) 索引图像(Indexed images) RGB图像(RGB images)

条形码识别

HEFEI UNIVERSITY 系别电子信息与电气工程系 专业电气信息类 班级电子(2)班 完成时间 2012-11-04 姓名学号周峰 0905073012

基于MATLAB的一维条码识别 摘要:条码技术是如今应用最广泛的识别和输入技术之一,由于其包含的信息量 大,识别错误率低而在各个方面得到很大的重视。它发展迅速并被广泛应用于于工业、商业、图书出版、医疗卫生等各行各业。由我国目前发展现状来看,条码的正常使用受到条形码印刷质量和商品运输过程的影响,并且传统的条码识读方式是采用光电识读器,条码图像对光的不同反射效果也必然会对条码的识读产生影响,而一般条码在搬运过程中条码会不可避免的破损,所以对质量较差的条码的条码的识别尤为重要。 不同的条码有着不同的识读过程。本设计研究一种基于图像处理方式的识读方法,通过一定的数字图像处理算法处理进行译码。译码算法主要分为两部分:第一部分首先对采集的条码图像进行预处理,图像的预处理包括图像分割,图像滤波等,良好的图像处理将对后面实现正确译码有重大贡献;第二部分就是对预处理后的条码图像进行译码,我们根据相似边距离来判别条码字符,再通过译码、校验、纠错处理来识读条码,得到条码所表示的文本信息。借助于Matlab软件的功能我们完成这次译码工作。 关键词:图像处理条形码识别 EAN-13 图像滤波 Matlab

一、引言 1.1 条码技术概述 条码技术是在计算机的应用实践中产生和发展起来的一种自动识别技术,条码应用技术就是应用条码系统进行的信息处理技术。条码技术的研究始于20世纪中期,是继计算机技术应用和发展应运而生的。 通俗的说条形码是指在浅色衬底上印有深色矩形的线条(也称条码)排列而成的编码,其码条和空白条的数量和宽度按一定的规则(标准)排列。条形码是由一组规则排列的条、空、相应的数字组成。这种用条、空组成的数据编码可以供机器识读,而且很容易译成二进制数和十进制数。这些条和空可以有各种不同的组合方法,构成不同的图形符号,即各种符号体系,适用于不同的应用场合。条形码是迄今为止最经济、实用的一种自动识别技术。 1.2Matlab应用图像处理 Matlab图像处理工具是由Math Works公司推出的用于数值计算的有力工具,它具有相当强大的矩阵运算和操作功能,力求人们摆脱繁杂的程序代码。Matlab图像处理工具箱提供了丰富的图像处理函数,灵活运用这些函数可以完成大部分图像处理工作。图像处理工具包是由一系列支持图像处理操作的函数组成的。所支持的图像处理操作有:图像的几何操作、邻域和区域操作、图像变换、图像恢复与增强、线性滤波和滤波器设计、变换(DCT变换等) 、图像分析和统计、二值图像操作等。下面就MATLAB 在图像处理中各方面的应用分别进行介绍。主要包括下面几方面: (1) 图像文件格式的读写和显示。MATLAB 提供了图像文件读入函数 imread(),用来读取如:bmp,tif、tiff、pcx 、jpg 、gpeg 、hdf、xwd等格式图像文;图像写出函数 imwrite() ,还有图像显示函数 image()、imshow()等等。 (2) 图像处理的基本运算。MATLAB 提供了图像的和、差等线性运算,以及卷积、相关、滤波等非线性算。例如,conv2(I,J)实现了I,J两幅图像的卷积。 (3) 图像变换。MATLAB提供了一维和二维离散傅立叶变换(DFT)、快速傅立叶变换(FFT)、离散余弦变换(DCT),以及连续小波变换(CWT)、离散小波变换(DWT)及其反变换。 二、一维条码技术 2.1 一维条码符号的结构 通常任何一个完整的条码是由两侧空白区、起始符、数据字符、校验符、终止符组成,以一维条码而言,其排列方式通常如表2-1所示: 表2-1 条码符号结构

数字图像处理实验报告

实验一灰度图像直方图统计 一、实验目的 掌握灰度图像直方图的概念和计算方法,了解直方图的作用和用途。提高学生编程能力,巩固所学知识。 二、实验内容和要求 (1)用Photoshop显示、了解图像平均明暗度和对比度等信息; (2)用MatLab读取和显示一幅灰度图像; (3)用MatLab编写直方图统计的程序。 三、实验步骤 1. 使用Photoshop显示直方图: 1)点击文件→打开,打开一幅图像; 2)对图像做增强处理,例如选择图像→调整→自动对比度对图像进行灰度拉伸,观察图像进行对比度增强前后的视觉变化。 3)利用统计灰度图像直方图的程序分别针对灰度拉伸前后的灰度图像绘制其灰度直方图,观察其前后的直方图变化。 2.用MatLab读取和显示一幅灰度图像; 3. 绘制图像的灰度直方图; function Display_Histogram()

Input=imread('timg.jpg'); figure(100); imshow(uint8(Input)); title('原始图像'); Input_Image=rgb2gray(Input); figure(200); imshow(uint8(Input_Image)); title('灰度图像'); sum=0; His_Image=zeros(1,256); [m,n]=size(Input_Image); for k=0:255 for I=1:m for j=1:n if Input_Image(I,j)==k His_Image(k+1)=His_Image(k+1)+1; end end end end figure(300); plot(His_Image); title('图像的灰度直方图'); 4.显示图像的灰度直方图。

人脸识别系统报告解析

摘要 文章具体讨论了主成分分析( PCA)人脸识别算法的原理及实现。它具有简单、快速和易行等特点,能从整体上反映人脸图像的灰度相关性具有一定的实用价值。人脸识别是目前较活跃的研究领域, 本文详细给出了基于主成分分析的人脸特征提取的原理与方法。并使用matlab 作为工具平台, 实现了一个人脸自动识别的系统原型。实验结果表明, 该系统识别率为100%, 达到预期的效果。如果想进一步提高人脸识别率, 可以考虑与其他方法结合。仅单独使用任何一种现有的方法一般都不会取得很好的识别效果, 将其他人脸识别方法组合是今后研究的一种趋势。也可以考虑改进分类决策的方法。本系统采用的最小距离分类法属于线性的分类器, 而利用神经网络这类学习能力更强的非线性分类器对高维人脸识别问题可能会有更好的解决。 1

目录 1.引言................................................................... (1) 2.需求分析.................................................................... 1 2.1 课题的来 源 (1) 2.2人脸识别技术的研究意义 (2) 2.2.1 面部关键特征定位及人脸2D形状检测技术 (2) 2.2.2面部感知系统的重要内 容 (2) 2.3人脸识别的国内外发展概况 (3) 2.3.1国外的发展概 况 (3) 2.3.2国内的发展概 况 (4) 3.概要设计.................................................................... 5 3.1问题描述 (5) 3.2模块设计 (5) 3.3主成分的一般定义 (6) 3.4主成分的性质 (7) 3.5主成分的数目的选取 (7) 4. 详细设计--PCA算法的功能实 现 (8) 4.1引言................................................................... .. 8 4.2 K-L变换 (8) 4.3 PCA方法 (9)

数字图像处理实验指导书模板

《数字图像处理》实验指导书 编写: 罗建军 海南大学三亚学院 10月

目录 一、概述 ....................................................................... 错误!未定义书签。 二、建立程序框架 ....................................................... 错误!未定义书签。 三、建立图像类 ........................................................... 错误!未定义书签。 四、定义图像文档实现图像读/写.............................. 错误!未定义书签。 五、实现图像显示 ....................................................... 错误!未定义书签。 六、建立图像处理类................................................... 错误!未定义书签。 七、实现颜色处理功能............................................... 错误!未定义书签。 (一) 亮度处理................................................................. 错误!未定义书签。 (二) 对比度处理............................................................. 错误!未定义书签。 (三) 色阶处理................................................................. 错误!未定义书签。 (四) 伽马变换................................................................. 错误!未定义书签。 (五) 饱和度处理............................................................. 错误!未定义书签。 (六) 色调处理................................................................. 错误!未定义书签。 八、实现几何变换功能............................................... 错误!未定义书签。 (一) 图像缩放................................................................. 错误!未定义书签。 (二) 旋转......................................................................... 错误!未定义书签。 (三) 水平镜像................................................................. 错误!未定义书签。 (四) 垂直镜像................................................................. 错误!未定义书签。 (五) 右转90度................................................................. 错误!未定义书签。 (六) 左转90度................................................................. 错误!未定义书签。 (七) 旋转180度............................................................... 错误!未定义书签。 九、实现平滑锐化功能............................................... 错误!未定义书签。 十、图像处理扩展编程............................................... 错误!未定义书签。

看条形码识别红酒产地

看条形码识别红酒产地 很多消费者来信说这个进口红酒太乱了,洋文不懂,跟本搞不懂那里产,几十个国生产葡萄酒,还有些国内灌装的如何分辨?红酒信息网简单说一些通过条码看产地的办法。 商品条形码是指由一组规则排列的条、空及其对应字符组成的标识,用以表示一定的商品信息的符号。 目前世界上常用的码制有ENA条形码、UPC条形码、二五条形码、交叉二五条形码、库德巴条形码、三九条形码和128条形码等,而商品上最常使用的就是EAN商品条形码。 EAN-13通用商品条形码一般由前缀部分、制造厂商代码、商品代码和校验码组成。商品条形码中的前缀码是用来标识国家或地区的代码,赋码权在国际物品编码协会,如300-379代表法国,930-939代表澳大利亚,00-09代表美国,800-839代表意大利,840-849代表西班牙、400-440代表德国由表中可知,如果是法国正宗的原瓶红酒,其条码应该是300——379开头,中国的条码是690-695开头,如果条码是690-695开头又称为进口酒的,不管是那国的,一定是国内灌装的啦(进口国外原酒或部分原酒勾兑)。 以下为国际条形码前缀对照表: 前缀码编码组织所在国家( 或地区)/ 应用领 域 前缀码 编码组织所在国家( 或地区)/ 应用领 域 000~019 030~039 060~139 美国627 科威特 020~029 040~049 200~299 店内码628 沙特阿拉伯050~059 优惠券629 阿拉伯联合酋长国300~379 法国640~649 芬兰 380 保加利亚690~695 中国 383 斯洛文尼亚700~709 挪威 385 克罗地亚729 以色列 387 波黑730~739 瑞典 400~440 德国740 危地马拉 450~459 490~499 日本741 萨尔瓦多 460~469 俄罗斯742 洪都拉斯 470 吉尔吉斯斯坦743 尼加拉瓜 471 中国台湾744 哥斯达黎加 474 爱沙尼亚745 巴拿马 475 拉脱维亚746 多米尼加 476 阿塞拜疆750 墨西哥 477 立陶宛754~755 加拿大 478 乌兹别克斯坦759 委内瑞拉 479 斯里兰卡760~769 瑞士 480 菲律宾770 哥伦比亚 481 白俄罗斯773 乌拉圭 482 乌克兰775 秘鲁

数字图像处理实验报告

数字图像处理实验报告 实验一数字图像基本操作及灰度调整 一、实验目的 1)掌握读、写图像的基本方法。 2)掌握MATLAB语言中图像数据与信息的读取方法。 3)理解图像灰度变换处理在图像增强的作用。 4)掌握绘制灰度直方图的方法,理解灰度直方图的灰度变换及均衡化的方 法。 二、实验内容与要求 1.熟悉MATLAB语言中对图像数据读取,显示等基本函数 特别需要熟悉下列命令:熟悉imread()函数、imwrite()函数、size()函数、Subplot()函数、Figure()函数。 1)将MATLAB目录下work文件夹中的forest.tif图像文件读出.用到imread, imfinfo 等文件,观察一下图像数据,了解一下数字图像在MATLAB中的处理就是处理一个矩阵。将这个图像显示出来(用imshow)。尝试修改map颜色矩阵的值,再将图像显示出来,观察图像颜色的变化。 2)将MATLAB目录下work文件夹中的b747.jpg图像文件读出,用rgb2gray() 将其 转化为灰度图像,记为变量B。 2.图像灰度变换处理在图像增强的作用 读入不同情况的图像,请自己编程和调用Matlab函数用常用灰度变换函数对输入图像进行灰度变换,比较相应的处理效果。 3.绘制图像灰度直方图的方法,对图像进行均衡化处理 请自己编程和调用Matlab函数完成如下实验。 1)显示B的图像及灰度直方图,可以发现其灰度值集中在一段区域,用 imadjust函 数将它的灰度值调整到[0,1]之间,并观察调整后的图像与原图像的差别,调整后的灰

度直方图与原灰度直方图的区别。 2) 对B 进行直方图均衡化处理,试比较与源图的异同。 3) 对B 进行如图所示的分段线形变换处理,试比较与直方图均衡化处理的异同。 图1.1 分段线性变换函数 三、实验原理与算法分析 1. 灰度变换 灰度变换是图像增强的一种重要手段,它常用于改变图象的灰度范围及分布,是图象数字化及图象显示的重要工具。 1) 图像反转 灰度级范围为[0, L-1]的图像反转可由下式获得 r L s --=1 2) 对数运算:有时原图的动态范围太大,超出某些显示设备的允许动态范围, 如直接使用原图,则一部分细节可能丢失。解决的方法是对原图进行灰度压缩,如对数变换: s = c log(1 + r ),c 为常数,r ≥ 0 3) 幂次变换: 0,0,≥≥=γγc cr s 4) 对比拉伸:在实际应用中,为了突出图像中感兴趣的研究对象,常常要求 局部扩展拉伸某一范围的灰度值,或对不同范围的灰度值进行不同的拉伸处理,即分段线性拉伸: 其对应的数学表达式为:

图像处理在人脸识别中的应用

图像处理在人脸识别中的应用 2016-2017学年第二学期 《数字图像处理》课程设计 ? ? 所在学院: 学生姓名: 学生学号: 任课老师: 年月日一、实验目的

查阅并消化有关人脸识别文献所提出的算法,综合使用所学数字图像处理的有关知识实现单张图像的人脸识别。 二、实验原理 随着新的信息技术和信息媒介的普及,在人机交互方面越来越多的高效友好的方法被开发出来,这些方法不依赖于传统的设备,比如说键盘、鼠标和显示器。而且,计算机性价比持续下降,近来视频设备成本下跌,预示着计算机视频系统能够在台式机和嵌入式系统中开发。人脸处理研究的快速发展是基于假设的,即关于用户身份、状态、意图的信息能够从图像中抽取出来,然后计算机做出相应相应,比方说观察一个人的面部表情。任何一个人脸处理系统的第一步是人脸在图像中的位置。然而,从单张图片中检测出人脸是一项具有挑战性的工作,因为人脸在大小、位置、方向、姿势方面是可变的。人脸表情、牙齿相接触的方式、光照也会改变人脸的整体外观。 我们队对人脸检测下一个定义:给定任意图像,人脸检测的目的是确定图像中是否有人脸,如果有人脸,则返回人脸在图像中的位置和范围。即给定一张图像,人脸检测的目的是确定所有包含人脸的图像区域,而不管人脸的三维位置、方向和光照条件。人脸检测面临的挑战可以归结为以下因素: (1)姿势。人脸图像会因为摄影机一人脸的相对位置(正面,成45度角,侧面,上下颠倒)以及象独眼、鼻子部分或全部闭合等一些人脸特性而不同。 (2)组成部件的有和无。像胡子、眼镜等面部特征,有些人有,有些人没有,而他们在形状、颜色和大小方面也有很大的差别。 (3)面部表情。人的面貌直接收受面部表情的影响。 (4)遮挡。人脸可能被其他物体部分遮挡。在有一群人的图像里,有些人的脸会被其他人的脸部分遮挡。 (5)图像的方位。人脸图像直接受视频光轴的不同旋转角度影响。 (6)成像条件。当图像形成的时候,光照(光谱、光源分布、光密度)、摄像头特性(感应器、镜头)等因素会影响人脸的外观。 (7)人脸检测有很多相关的问题。人脸定位的目标是确定单张人脸在图像中的位置。这是一个简单的检测问题,它假设输入的图像只包含一张人脸。人脸特征检测的目的是检测人脸特征的有无 和位置,比如说眼睛、鼻子、鼻孔、眉毛、嘴巴、嘴唇、耳朵等的有无和位置,其前提同样是 假设图像中只有一张人脸。人脸识别是将输入图像与数据库中的人脸图像进行比较,如果有匹 配的,则报告匹配情况。人脸验证的是在输入图像中验证单个人的方位。人脸表情识别涉及确 认人的感情状态(包裹高兴、悲伤、厌恶等)。显然,在任何解决以上问题的自动化系统中人 脸识别是第一步。 目前,人们提出用来在单张黑白或彩色图像中检测人脸的方法已经有10多种。 对单张图像的检测分为四类,但有些方法明显同时属于多于一个类: (1)基于知识的方法。这些基于先验知识的方法对组成典型人脸的知识进行编码。通常,先验知识包含了这些人脸特征之间的相互关系。此类方法主要用于人脸定位。 (2)特征不变方法。这些算法的目标是找出存在的一些结构特征。这些算法的目标是找出存在的一些结构特征,这些特征在姿势、观察点、光照改变的情况下保持不变。然后使用这些特征来 定位人脸。这些方法主要用于人脸定位。 (3)模板匹配法。这种方法首先是存储一张人脸的几个标准模板,用来描述整张人脸或人脸的部分特性。然后通过计算输入图像与已经存储模板之间的相关度来进行检测。这些方法既可用于人 脸检测也可用于人脸定位。 (4)基于外观的方法。与模板匹配不同的是,这里的模板是从一组训练图像经过学习而得来的,这些图像应该包括人脸外观的具有代表性的变化元素。这些方法主要用于人脸识别。 下面我们将简介本实验中选用的基于特征不变量——人类肤色的研究目标和大体方法。

数字图像处理程序

数字图像处理程序

数字图像处理实验 图像处理实验(一)直方图 灰度变换是图像增强的一种重要手段,使图像对比度扩展,图像更加清晰,特 征更加明显。 灰度级的直方图给出了一幅图像概貌的描述,通过修改灰度直方图来得到图像 增强。 1、灰度直方图 (1)计算出一幅灰度图像的直方图 clear close all I=imread('004.bmp'); imhist(I) title('实验一(1)直方图'); (2)对灰度图像进行简单的灰度线形变换, figure subplot(2,2,1) imshow(I); title('试验2-灰度线性变换'); subplot(2,2,2) histeq(I); (3)看其直方图的对应变化和图像对比度的变化。 原图像 f(m,n) 的灰度范围 [a,b] 线形变换为图像 g(m,n),灰度范围[a’,b’]公式:g(m,n)=a’+(b’-a’)* f(m,n) /(b-a) figure subplot(2,2,1) imshow(I) J=imadjust(I,[0.3,0.7],[0,1],1); title(' 实验一(3)用g(m,n)=a’+(b’-a’)* f(m,n) /(b-a)进行变换 '); subplot(2,2,2) imshow(J) subplot(2,2,3) imshow(I) J=imadjust(I,[0.5 0.8],[0,1],1); subplot(2,2,4) imshow(J) (4) 图像二值化(选取一个域值,(5) 将图像变为黑白图像) figure subplot(2,2,1)

数字图像处理报告

数字图像处理的起源与应用 1.概述 数字图像处理(Digital Image Processing)是通过计算机对图像进行去除噪声、增强、复原、分割、提取特征等处理的方法和技术。数字图像处理技术目前广泛应用于各个领域,其发挥的作用有效提高了人们的生产生活质量。 2.起源与发展 (1)20世纪 20 年代,数字图像处理最早应用于报纸行业。由于报纸行业信息传输的需要,一根海底电缆从英国伦敦连输到美国纽约,实现了第一幅数组照片的传送。(在当时那个年代如果不采用数字图像处理,一张图像传达的时间需要7 天,而借助数字图像处理技术仅耗费 3 小时)。 (2)20世纪50年代,当时的图像处理是以人为对象,以改善人的视觉效果为目的。 (3)20世纪60年代的美国喷气推进实验室是图像处理技术首次获得实际成功的应用,推动了数字图像处理这门学科的诞生。 (4)20世纪70年代英国EMI公司工程师Housfield发明了CT并获得了诺贝尔奖,这对人类的发展作出了划时代的贡献。借助计算机、人工智能等方面的快速发展,数字图像处理技术实现了更高层次的发展。相关工作人员已经着手研究如何使用计算机进行图像解释。 (5)20世纪 80 年代。研究人员将数字图像处理应用于地理信息系统。从这个阶段开始数字图像处理技术的应用领域不断扩大,在工业检测、遥感等方面也得到了广泛应用,在遥感方面实现了对卫星传送回来的图像的处理。 (6)20世纪 90 年代。数字图像处理技术就得到了一个快速发展,其中特别是小波理论和变换方法的诞生(Mallat在1988年有效地将小波分析应用于图像分解和重构),更好地实现了数字图像的分解与重构。 (7)进入到 21 世纪,借助计算机技术的飞速发展与各类理论的不断完善,数字图像处理技术的应用范围被拓宽,甚至已经在某些领域取得突破。从目前数字图像处理技术的特点进行分析,可以发现图像信息量巨大,在图像处理综合性方面显示出十分明显的优势,其中就借助了图像信息理论与通信理论的紧密联系。再加上数字图像处理技术具有处理精度高、灵活性强、再现性好、适用面广、信息压缩的潜力大等特点,因此已经成功地应用在各个领域。 3.应用 (1)航天和航空技术方面:早在1964年美国就利用图像处理技术对月球照片进行处理,并且成功地绘制出月球表面地图,这个重大的突破使得图像处理技术在航天技术中发挥着越来越重要的作用。“卡西尼”号飞船进入土星轨道后传回地球的土星环照片,“火星快车”拍摄到的火星山体滑坡照片,还有我国嫦娥探测器拍摄的月球表面照片,以及近来很火的“大疆”无人机航拍等等。这些照片都体现了数字图像处理技术在航空航天技术领域不可或缺的重要作用。 (2)遥感领域方面的应用:数字图像处理在遥感的应用,主要是获取地形地质及地面设施资料,矿藏探查、森林资源状况、海洋和农业等资源的调查、自然灾害预测预报、环境污染检测、气象卫星云图处理以及地面军事目标的识别。例

人脸识别可行性研究报告

人脸识别可行性研究报告 一报告目录 第一章前言 第一节课题背景 一课题的来源------------------------------------------------------------------------------1 二人脸识别技术的研究意义------------------------------------------------------------2 第二节人脸识别技术的国内外发展概况---------------------------------------------------3一国外发展概况---------------------- --------------------------------------------------3 二国内发展概况---------------------------------------------------------------------------4 第二章系统的需求分析和方案选择---------------------------------------------------------6第一节可行性分析------------------------------------------------------------------------------6 一技术可行性分析------------------------------------------------------------------------6 二操作可行性分析------------------------------------------------------------------------7 第二节需求分析---------------------------------------------------------------------------------7 一应用程序的功能需求分析------------------------------------------------------------7 二开发环境的需求分析------------------------------------------------------------------8 三运行环境的需求分析------------------------------------------------------------------8 第三节预处理方案选择------------------------------------------------------------------------9 一设计方案原则的选择------------------------------------------------------------------9 二图像文件格式选择---------------------------------------------------------------------9 三开发工具选择---------------------------------------------------------------------------9 第一章前言 第一节课题背景 一课题的来源 随着安全入口控制和金融贸易方面应用需要的快速增长,生物统计识别技术得到了新的重视。目前,微电子和视觉系统方面取得的新进展,使该领域中高性能自动识别技术的实现代价降低到了可以接受的程度。而人脸识别是所有的生物识别方法中应用最广泛的技术之一,人脸识别技术是一项近年来兴起的,但不大为人所知的新技术。人们更多的是在电影中看到这种技术的神奇应用:警察将偷拍到的嫌疑犯的脸部照片,输入到电脑中,与警方数据库中的资料进行比对,并找出该嫌犯的详细资料和犯罪记录。这并非虚构的情节。在国外,人脸识别技术早已被大量使用在国家重要部门以及军警等安防部门。在国内,对于人脸识别技术的研究始于上世纪90年代,目前主要应用在公安、金融、网络安全、物业管理以及考勤等领域。 二人脸识别技术的研究意义

数字图像处理实验报告

数字图像处理实验报告

实验一数字图像处理编程基础 一、实验目的 1. 了解MA TLAB图像处理工具箱; 2. 掌握MA TLAB的基本应用方法; 3. 掌握MA TLAB图像存储/图像数据类型/图像类型; 4. 掌握图像文件的读/写/信息查询; 5. 掌握图像显示--显示多幅图像、4种图像类型的显示方法; 6. 编程实现图像类型间的转换。 二、实验内容 1. 实现对图像文件的读/写/信息查询,图像显示--显示多幅图像、4种图像类型的显示方法、图像类型间的转换。 2. 运行图像处理程序,并保存处理结果图像。 三、源代码 I=imread('cameraman.tif') imshow(I); subplot(221), title('图像1'); imwrite('cameraman.tif') M=imread('pout.tif') imview(M) subplot(222), imshow(M); title('图像2'); imread('pout.bmp') N=imread('eight.tif') imview(N) subplot(223), imshow(N); title('图像3'); V=imread('circuit.tif') imview(V) subplot(224), imshow(V); title('图像4');

N=imread('C:\Users\Administrator\Desktop\1.jpg') imshow(N); I=rgb2gary(GRB) [X.map]=gary2ind(N,2) RGB=ind2 rgb(X,map) [X.map]=gary2ind(I,2) I=ind2 gary(X,map) I=imread('C:\Users\dell\Desktop\111.jpg'); subplot(231),imshow(I); title('原图'); M=rgb2gray(I); subplot(232),imshow(M); [X,map]=gray2ind(M,100); subplot(233),imshow(X); RGB=ind2rgb(X,map); subplot(234),imshow(X); [X,map]=rbg2ind(I); subplot(235),imshow(X); 四、实验效果

东南大学数字图像处理实验报告

数字图像处理 实验报告 学号:04211734 姓名:付永钦 日期:2014/6/7 1.图像直方图统计 ①原理:灰度直方图是将数字图像的所有像素,按照灰度值的大小,统计其所出现的频度。 通常,灰度直方图的横坐标表示灰度值,纵坐标为半个像素个数,也可以采用某一灰度值的像素数占全图像素数的百分比作为纵坐标。 ②算法: clear all PS=imread('girl-grey1.jpg'); %读入JPG彩色图像文件figure(1);subplot(1,2,1);imshow(PS);title('原图像灰度图'); [m,n]=size(PS); %测量图像尺寸参数 GP=zeros(1,256); %预创建存放灰度出现概率的向量 for k=0:255 GP(k+1)=length(find(PS==k))/(m*n); %计算每级灰度出现的概率end figure(1);subplot(1,2,2);bar(0:255,GP,'g') %绘制直方图 axis([0 255 min(GP) max(GP)]); title('原图像直方图') xlabel('灰度值') ylabel('出现概率') ③处理结果:

原图像灰度图 100 200 0.005 0.010.0150.020.025 0.030.035 0.04原图像直方图 灰度值 出现概率 ④结果分析:由图可以看出,原图像的灰度直方图比较集中。 2. 图像的线性变换 ①原理:直方图均衡方法的基本原理是:对在图像中像素个数多的灰度值(即对画面起主 要作用的灰度值)进行展宽,而对像素个数少的灰度值(即对画面不起主要作用的灰度值)进行归并。从而达到清晰图像的目的。 ②算法: clear all %一,图像的预处理,读入彩色图像将其灰度化 PS=imread('girl-grey1.jpg'); figure(1);subplot(2,2,1);imshow(PS);title('原图像灰度图'); %二,绘制直方图 [m,n]=size(PS); %测量图像尺寸参数 GP=zeros(1,256); %预创建存放灰度出现概率的向量 for k=0:255

基于ARM9的人脸识别系统 嵌入式报告 课程设计

嵌入式课程设计报告 学院信息电子技术 专业通信工程 班级 学号 姓名 指导教师 2017年07月01日

基于ARM9的人脸识别系统 一、引言 人脸识别背景和意义 人脸识别系统的研究始于20世纪60年代,80年代后随着计算机技术和光学成像技术的发展得到提高,而真正进入初级的应用阶段则在90年后期,并且以美国、德国和日本的技术实现为主;人脸识别系统成功的关键在于是否拥有尖端的核心算法,并使识别结果具有实用化的识别率和识别速度;“人脸识别系统”集成了人工智能、机器识别、机器学习、模型理论、专家系统、视频图像处理等多种专业技术,同时需结合中间值处理的理论与实现,是生物特征识别的最新应用,其核心技术的实现,展现了弱人工智能向强人工智能的转化语音识别、体形识别等,而指纹识别、虹膜识别等都不具有自然性,因为人类或者其他生物并不通过此类生物特征区别个体。 人脸识别具有这方面的特点,它完全利用可见光获取人脸图像信息,而不同于指纹识别或者虹膜识别,需要利用电子压力传感器采集指纹,或者利用红外线采集虹膜图像,这些特殊的采集方式很容易被人察觉,从而更有可能被伪装欺骗。 二、系统设计 1、硬件电路设计 (1)ARM9处理器 本系统所采用的硬件平台是天嵌公司的TQ2440开发板,该开发板的微处理器采用基于ARM920T内核的S3C2440芯片。 ARM9对比ARM7的优势:虽然ARM7和ARM9内核架构相同,但ARM7处理器采用3级流水线的冯·诺伊曼结构,而ARM9采用5级流水线的哈佛结构。增加的流水线设计提高了时钟频率和并行处理能力。5级流水线能够将每一个指令处理分配到5个时钟周期内,在每一个时钟周期内同时有5个指令在执行。在常用的芯片生产工艺下,ARM7一般运行在100MHz左右,而ARM9则至少在200MHz 以上。指令周期的改进对于处理器性能的提高有很大的帮助。性能提高的幅度依赖于代码执行时指令的重叠,这实际上是程序本身的问题。对于采用最高级的语言,一般来说,性能的提高在30%左右。ARM7一般没有MMU(内存管理单元),(ARM720T有MMU)。 (2)液晶显示屏 为显示摄像头当前采集图像的预览,系统采用三星的320x240像素的液晶屏,大小为206.68cm。该液晶显示屏的每个像素深度为2bit,采用RGB565色彩空间。 (3)摄像头 摄像头采用市场上常见的网眼2000摄像头,内部是含CMOS传感器的OV511+芯片。CMOS传感器采用感光元件作为影像捕获的基本手段,核心是1个感光二极

数字图像处理实验

学院计算机与通信工程学院专业生物医学工程专业 班级51111 学号5111133 姓名杨静 指导教师贾朔 2014年04月21日

实验一图像的基本运算 一、实验目的: 1、掌握图像处理中的点运算、代数运算、逻辑运算和几何运算及应用。 2、掌握各种运算对于图像处理中的效果。 二、实验内容: 1、(1)选择一幅图像lena8.jpg,设置输入/输出变换的灰度级范围,a=0.2,b=0.6,c=0.1,d=0.9. (2)设置非线性扩展函数的参数c=2. (3)采用灰度级倒置变换函数s=255-r进行图像变换 (4)设置二值化图像的阈值,分别为level=0.4,level=0.7 解:参考程序如下: I=imread('C:\lena8.jpg'); figure; subplot(2,3,1); imshow(I); title('原图'); J=imadjust(I,[0.3;0.6],[0.1;0.9]); %设置灰度变换的范围 subplot(2,3,2); imshow(J); title('线性扩展'); I1=double(I); %将图像转换为double类型 I2=I1/255; %归一化此图像 C=2; K=C*log(1+I2); %求图像的对数变换 subplot(2,3,3); imshow(K); title('非线性扩展'); M=im2bw(I,0.5); M=~M; %M=255-I; %将此图像取反 %Figure subplot(2,3,4); imshow(M); title('灰度倒置'); N1=im2bw(I,0.4); %将此图像二值化,阈值为0.4 N2=im2bw(I,0.7); %将此图像二值化,阈值为0.7 subplot(2,3,5); imshow(N1); title('二值化阈值0.4'); subplot(2,3,6); imshow(N2); title('二值化阈值0.7');

相关文档
最新文档