资源简介
使用MATLAB语言编写代码对输入的银行卡图片,进行处理分割出银行卡卡号。

代码片段和文件信息
%%
clear;
close all;
clc;
%% 自动弹出提示框读取图像
[filename filepath] = uigetfile(‘.jpg‘ ‘输入一个需要识别的图像‘);
file = strcat(filepath filename);
img = imread(file);
figure;
imshow(img);
title(‘银行卡图像‘);
%% 灰度处理
img1 = rgb2gray(img); % RGB图像转灰度图像
%% 边缘提取
img4 = edge(img1 ‘roberts‘ 0.15 ‘both‘);
%% 图像腐蚀
se=[1;1;1];
img5 = imerode(img4 se);
%% 平滑图像,图像膨胀
se = strel(‘rectangle‘ [30 30]);
img6 = imclose(img5 se);
%% 从图像中删除所有少于500像素8邻接
img7 = bwareaopen(img6 500);
%% 切割出图像
[y x z] = size(img7);
img8 = double(img7); % 转成双精度浮点型
for i = 1 : x
for j = 1 : y / 2
if img8(j i) == 1
img8(j i) = 0;
end
end
end
for i = 1 : x
for j = 213 : y
if img8(j i) == 1
img8(j i) = 0;
end
end
end
for i = 450 : x
for j = 1 : y
if img8(j i) == 1
img8(j i) = 0;
end
end
end
% imshow(img8)
%找到银行卡卡号区域的位置
%% 切割出图像
[y x z] = size(img8);
img8 = double(img8); % 转成双精度浮点型
blue_Y = zeros(y 1);
for i = 1:y
for j = 1:x
if(img8(i j) == 1) % 判断车牌位置区域
blue_Y(i 1) = blue_Y(i 1) + 1; % 像素点统计
end
end
end
% 找到Y坐标的最小值
img_Y1 = 1;
while (blue_Y(img_Y1) < 5) && (img_Y1 < y)
img_Y1 = img_Y1 + 1;
end
% 找到Y坐标的最大值
img_Y2 = y;
while (blue_Y(img_Y2) < 5) && (img_Y2 > img_Y1)
img_Y2 = img_Y2 - 1;
end
% x方向
blue_X = zeros(1 x);
for j = 1:x
for i = 1:y
if(img8(i j) == 1) %
blue_X(1 j) = blue_X(1 j) + 1;
end
end
end
% 找到x坐标的最小值
img_X1 = 1;
while (blue_X(1 img_X1) < 5) && (img_X1 < x)
img_X1 = img_X1 + 1;
end
% 找到x坐标的最小值
img_X2 = x;
while (blue_X(1 img_X2) < 5) && (img_X2 > img_X1)
img_X2 = img_X2 - 1;
end
% 对图像进行裁剪
img9 = img(img_Y1- 3:img_Y2- 6 img_X1-3:img_X2 :);
%
imwrite(img9 ‘银行卡图像.jpg‘);
%% 对银行卡图像作图像预处理
plate_img = imread(‘银行卡图像.jpg‘);
% 转换成灰度图像
plate_img1 = rgb2gray(plate_img); % RGB图像转灰度图像
% 直方图均衡化
plate_img2 = histeq(plate_img1);
% 二值化处理
plate_img3 = im2bw(plate_img2 0.76);
% 中值滤波
plate_img4 = medfilt2(plate_img3);
imgRes = zeros(y x);
for i = img_X1 - 3 : img_X2
for j = img_Y1 - 3 : img_Y2 - 6
imgRes(j i) = plate_img4(j - img_Y1 + 4 i - img_X1 + 4);
end
end
imshow(imgRes);
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 2586 2018-12-27 16:26 银行卡号识别\main.m
文件 20061 2018-12-27 11:01 银行卡号识别\微信图片_20181227110015.jpg
文件 6463 2019-03-30 09:35 银行卡号识别\银行卡图像.jpg
目录 0 2019-03-30 09:35 银行卡号识别
----------- --------- ---------- ----- ----
29110 4
相关资源
- Matlab路面裂缝识别69319
- 高灵敏度GPS接收机MATLAB仿真,附捕获
- 基于MATLAB的质点弹道计算与外弹道优
- 阵列天线的matlab仿真
- MATLAB 经典程序源代码大全
- MATLAB小波软阈值去噪代码33473
- 天线阵的波束形成在MATLAB仿真程序及
- 非线性SVM算法-matlab实现
- 《MATLAB 智能算法超级学习手册》-程序
- 组合导航matlab程序
- 读取txt文件内容matlab代码实现
- Matlab实现基于相关的模板匹配程序
- matlab优化工具箱讲解
- 基于MATLAB的快速傅里叶变换
- 光纤传输中的分布傅立叶算法matlab实
- 基于matlab的图像处理源程序
- matlab 椭圆拟合程序
- 算术编码解码matlab源代码
- optical_flow 光流法 matlab 实现程序
- 引导图像滤波器 Matlab实现
- 分形几何中一些经典图形的Matlab画法
- OFDM系统MATLAB仿真代码
- SVM工具箱(matlab中运行)
- 图像小波变换MatLab源代码
- LU分解的MATLAB实现
- 冈萨雷斯数字图像处理matlab版(第三
- 替代数据法的matlab程序
- 用matlab实现的多站定位系统性能仿真
- 通过不同方法进行粗糙集属性约简m
- k近邻算法matlab实现
评论
共有 条评论