|  | 
 
| 
$ z' N4 O5 s5 t2 k% S# k+ x& j
x
EDA365欢迎您登录!您需要 登录 才可以下载或查看,没有帐号?注册  一、简介! p& z1 E2 B) D0 I" ^/ N
 本文针对印刷体字符和凹凸字符以及市面上的银行卡号不同数字字体进行识别。
 1 w; M( [# b) i/ H1 t" l# q2 i+ Q
 7 ^3 R( i' U: U+ O  e$ G( D
 ) r2 y) [7 m; \  D# Q7 A$ p5 A( W1.概述3 }/ r2 v( E6 D  I( ]
 / ~; V1 j" i$ r+ s. m8 j5 Z/ Z
 近几年来我国互联网金融飞速发展,网上资金交易逐渐成为日常生活中的主流消费方式。在进行网上资金操作时,往往涉及到对银行卡的操作。在输入银行卡号时,若能通过银行卡图像直接快速准确识别出银行卡号,其在电子支付的便利性、安全性等方面的应用,将会给人们的生活带来更大的便利。今天就给大家展示一下如何使用matlab如何识别银行卡号。# {$ j3 R' e9 D- P! _3 U# z, H  D
 
 ( ^( E) e5 M% {. \" _& L
   - p( T& A1 q; F! K# D
 ; W8 x  a% A5 |
 1 U# u9 Q7 \( w4 c$ C4 w二、源代码1 s! J9 C+ R8 y/ q
 
 ! Z- T6 ]/ C- [  @
 , U* G  _4 ~* A1 i5 O1 X  Z%印刷体识别clc;clear;close all;addpath('util/');addpath('data/');inputpath='data/';fdir=dir(strcat(inputpath,'*.jpg'));p=size(fdir);method=2;%定位方法levelth=0.3;%水平分割缩放阈值for i=2:p(1)im=imread(fdir(i).name);imtp=imresize(im,0.25);%图像灰度化if(length(size(im))>1)    im=double(rgb2gray(im));else    im=double(im);end    im=imresize(im,0.25);    th=graythresh(im);    pt=size(im);%提取上下位面    if(method==1)       im=GuassSmoothfilter(im)*255;%平滑       cent=2;       [Labels,BW]=KmeansSg(im,cent);%kmeans聚类       [pMax,pMin]=Findline(BW);%Hough变换       downlevel=pMax.y-(pMax.y-pMin.y)*0.30;       uplevel=pMin.y+(pMax.y-pMin.y)*0.55;    else       [pMax,pMin,pxMax,pxMin]=levelSg(im,levelth);%水平集分割       downlevel=pMax-(pMax-pMin)*0.29;       uplevel=pMin+(pMax-pMin)*0.55;    end   imcrop=im(uplevel:downlevel,:);%定位银行卡号   po=size(imcrop);   imtpcrop=zeros(po(1),po(2),3);   imtpcrop(1:po(1),:,1)=imtp(uplevel:downlevel,:,1);   imtpcrop(1:po(1),:,2)=imtp(uplevel:downlevel,:,2);   imtpcrop(1:po(1),:,3)=imtp(uplevel:downlevel,:,3);   figure;   imshow(imcrop,[]);title('灰度切割')   figure;   imshow(imtpcrop,[]);title('彩色切割')   srcyuv=rgb2yuv(imtpcrop);%rgb转换为YUV通道   figure;   imshow(srcyuv(:,:,2),[]);title('yuv通道')   edg=edge(srcyuv(:,:,3),'sobel');%canny边缘检测   figure;   B=im2bw(uint8(imcrop),0.2);   imshow(B,[]);title('二值化')   %[L,num] = bwlabel(~B,4);%获取联通区域   imwrite(uint8((~B)*255),'x.jpg');   figure;   imshow(edg,[]);title('边缘')   B=uint8((~B)*255);   cropAll(B)%最终裁剪   recognize%卡号识别end6 R6 v4 e$ W/ p4 g
 3 R- y% f7 A" p
 
 | 
 |