图像论文.docx
《图像论文.docx》由会员分享,可在线阅读,更多相关《图像论文.docx(8页珍藏版)》请在冰豆网上搜索。
图像论文
三种面值人民币的自动识别
班级:
仪表2班
姓名:
陈庚马冰卿郑晓田
指导教师:
赵彦涛
日期:
2014年12月
2014年12月
摘要
当今经济快速发展带动金融行业一起向前发展,对纸币清分机清分能力的要求也不断提高,基于图像处理的纸币特征识别技术是纸币清分机研发中的关键技术,因此受到的关注也日益增多,应用的领域也日益变宽。
目前的识别技术有尺寸比较法;模板匹配法;人工神经网络等。
而基于MATLAB的识别方法我们大致确定了特征区域图像主色调不同、纸币长宽比不同、特征图像不同、不同币值特征数字这四个不同的方向。
a)捷德纸币清分机b)清华同方与东芝合作的CS-100CN
c)哈尔滨电机厂清分机d)日本光荣USF-100
关键词:
第五套人民币;MATLAB;主色调;自动识别
正文
本文主要使用特征区域图像主色调不同的方法对现在我们国家流通的第五版新版100元,50元,20元人民币进行识别,在研究纸币特征时,对采集到的纸币数字图像进行灰度处理、摆正、滤波和主色调提取等操作来分别区分出不同面值的人民币。
识别步骤:
1、读取图像,将所需的图像放在一定的文件中储存以备所用。
2、纸币摆正,针对纸币可能出现的不同的情况需要对纸币进行校正处理,如若倾斜则进行校正处理,如若不倾斜直接进行下一步。
3、采用相应的方法剔除背景,只提取纸币部分,避免背景造成的相关的干扰,便于准确快速的识别纸币的不同面值。
4、利用主色调提取设计出相应的程序快速的识别出不同的纸币面值。
程序代码:
%1、读取图像
I1=imread('C:
\Users\lenovo\Desktop\新建文件夹\QQ图片20141130002308.jpg');
I2=imread('C:
\Users\lenovo\Desktop\新建文件夹\QQ图片20141130002303.jpg');
I3=imread('C:
\Users\lenovo\Desktop\新建文件夹\QQ图片20141130002242.jpg');
I4=imread('C:
\Users\lenovo\Desktop\新建文件夹\QQ图片20141130002259.jpg');
I5=imread('C:
\Users\lenovo\Desktop\新建文件夹\QQ图片20141130002255.jpg');
I6=imread('C:
\Users\lenovo\Desktop\新建文件夹\QQ图片20141130002247.jpg');
I7=imread('C:
\Users\lenovo\Desktop\新建文件夹\QQ图片20141130002220.jpg');
I8=imread('C:
\Users\lenovo\Desktop\新建文件夹\IMG_20141201_221313.jpg');
I9=imread('C:
\Users\lenovo\Desktop\新建文件夹\IMG_20141201_221313.jpg');
I=(I3);
%2、图像摆正(以下程序都以100元纸币为例)
subplot(221);imshow(I);title('原图像');
gray=rgb2gray(I);
subplot(222);imshow(gray);title('灰度图像');
bw1=im2bw(gray,graythresh(gray));%获取全局阈值
bw=edge(bw1,'canny');
subplot(223);imshow(bw);title('canny边缘提取图像');
theta=1:
180;
[R,xp]=radon(bw,theta);
[I0,J]=find(R>=max(max(R)));%J记录了倾斜角
qingxiejiao=90-J
IM_pic=imrotate(I,qingxiejiao,'bilinear','crop');
subplot(224);imshow(IM_pic);title('摆正后图像');
%3、去除背景
[left,right,up,down,FF]=bianyuan(IM_pic);%剔除边缘提取纸币FF
figure;
subplot(121),imshow(FF);
%4、提取主色调
RGB=IM_pic(up:
down,left:
right,:
);
subplot(122),imshow(RGB);
R=RGB(:
:
1);
G=RGB(:
:
2);
figure,
subplot(121),imshow(R);title('R分量');
subplot(122),imshow(G);title('G分量');
r=sum(sum(R));
g=sum(sum(G));
bizhi=r/g
ifbizhi>=1.14
money=100
elseifbizhi<=0.93
money=50
else
money=20
end
运行结果:
其中自定义的函数:
function[left,right,up,down,FF]=bianyuan(IM_pic)
IM_g=rgb2gray(IM_pic);
%低通滤波
n=1;
H=1/(n*n)*ones(n,n);
IM_g=imfilter(IM_g,H);
%边缘
F=edge(IM_g,'sobel');
[mn]=size(F);
F=double(F);
%ground=0;%取背景
k=0;l=0;%取左右边缘
fori1=1:
m
forj1=1:
n
ifF(i1,j1)~=0
k=k+1;
left(k)=j1;
forj2=n:
-1:
j1
ifF(i1,j2)~=0
l=l+1;
right(l)=j2;
break
end
end
break
end
end
end
left=mode(left);
right=mode(right);
k=0;l=0;%取上下边缘
forj1=1:
n
fori1=1:
m
ifF(i1,j1)~=0
k=k+1;
up(k)=i1;
fori2=m:
-1:
i1
ifF(i2,j1)~=0
l=l+1;
down(l)=i2;
break
end
end
break
end
end
end
up=mode(up);
down=mode(down);
%已知纸币的上下左右
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%↑
%剔除背景,提取纸币部分
FF=IM_g(up:
down,left:
right);
%title('纸币部分提取')
总结:
本小组在进行该项目研究时,首先分别对第五版人民币20元、50元和100元,这三个不同面值的人民币的图像进行了详细的分析和讨论。
经过本小组成员的共同商讨,选择出纸币主色调作为完成本项目的切入点。
并对这个切入点的实现,进行了清晰的步骤分析。
接下来,我们小组成员分别从这个切入点入手,在查阅了大量资料后,实际动手编写程序,最终实现了从所采集图像主色调这个特征点,利用matlab软件对三个不同面值的人民币进行自动识别。
通过此次三级项目的研究学习,让我们对matlab软件有了更加深入的学习和了解。
通过自己动手设计编写程序,并从中发现问题、解决问题,增强了我们实际应用这门学科的能力和分析处理问题的能力。
另一方面,也增强了我们的团队协作能力,让我们通过结组讨论、共同解决问题的形式,互补学习、共同进步。
参考文献:
[1]纸币图像识别算法的研究魏正宜
[2]费东巍基于图像处理的纸币特征识别技术研究
[3]郭艳平纸币币种与币值识别系统的研究
[4]张铮倪红霞范春苗杨丽红精通Matlab数字图像处理与识别人民邮电出版社
[5]张德丰详解Matlab数字图像处理电子工业出版社