資源簡介
使用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?????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?????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
評論
共有 條評論