0
点赞
收藏
分享

微信扫一扫

【图像检测】基于纹理特征实现识别人名币正反面附matlab代码

1 简介

在银行业以及自助服务业等涉及到纸币识别的金融服务行业,纸币清分机扮演了十分重要的角色,它出现后便取代了很多枯燥而且容易出错的人工工作,并且让纸币清分这项业务在速率和效率上有了极大的提高。然而我国与国际上拥有先进纸币清分机制造技术的国家在纸币清分机制造领域还有很大的差距,我国的大型银行等一些金融机构所使用的纸币清分机几乎都是从国外进口,价格都在百万人民币以上。纸币的面额识别是纸币清分机的核心功能,因此要打破国外在我国清分机市场的垄断局面,就要研发具有自主知识产权的高效纸币识别技术。本文在充分调研国内外人民币纸币识别市场情况以及广泛阅读相关文献后,提出了一种人民币纸币正反面图像的检测方法。

2 完整代码

clc,clear,close all;

%读图规定为200*400大小

f1=imresize(imread('5.jpg'),[200 400]);

f2=imresize(imread('5f.jpg'),[200 400]);

%imshow(f);

%figure,imshow(f1);

%figure,imshow(f2);

%将rgb转为灰度图

%g1=rgb2gray(f);figure,imshow(g1);

%g2=rgb2gray(ff);figure,imshow(g2);

%找g图的h和w

for n=1:2

    a=strcat('f',int2str(n));

    aa=eval(a);

    aa1=rgb2gray(aa);

    [h,w]=size(aa1);

    %将g图分为9块,高h三等分

    h1=1:round(h/3);

    h2=round(h/3):round(h*2/3);

    h3=round(h*2/3):h;

    %w按照1:2:1分

    w1=1:round(w/4);

    w2=round(w/4):round(w*3/4);

    w3=round(w*3/4):w;

    %9个小块的大小

    g1=aa1(h1,w1);g2=aa1(h2,w1);g3=aa1(h3,w1);

    g4=aa1(h1,w2);g5=aa1(h2,w2);g6=aa1(h3,w2);

    g7=aa1(h1,w3);g8=aa1(h2,w3);g9=aa1(h3,w3);

    %定义一个9行一列的全零矩阵

    m=zeros(9,1);

    figure;

    %做一个循环

    for i=1:9

        %通过strcat将逗号前后内容拼接(将int整型转为str字符串型)

        s=strcat('g',int2str(i));

        %把字符串语句当作语句来执行,小数

        xx=eval(s);

        %算xx的平均值

        mx=mean2(xx);

        %m的行数为mx值

        m(i,1)=mx;

        subplot(3,3,i);

        imshow(xx);

    end

    %m的最大值,k为第几个分量

    [c,k]=max(m);

    s=strcat('f',int2str(n));

    xxx=eval(s);

    figure,imshow(xxx);

    if(k==2||k==8)        

        title('正面')

    end

    if(k==9||k==1)        

        title('反面')

    end

end

3 仿真结果

【图像检测】基于纹理特征实现识别人名币正反面附matlab代码_d3

4 参考文献

[1]彭辉. 基于纹理特征的图像分类识别[J]. 计算机与信息技术, 2007(10):3.

博主简介:擅长智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真,相关matlab代码问题可私信交流。

【图像检测】基于纹理特征实现识别人名币正反面附matlab代码_d3_02




举报

相关推荐

0 条评论