1 / 17
文档名称:

车牌识别系统MATLAB源代码完整.doc

格式:doc   大小:87KB   页数:17页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

车牌识别系统MATLAB源代码完整.doc

上传人:分享精品 2018/1/5 文件大小:87 KB

下载得到文件列表

车牌识别系统MATLAB源代码完整.doc

相关文档

文档介绍

文档介绍:clc; clear all; close all;
[filename, pathname, filterindex] = uigetfile({'*.jpg;*.tif;*.png;*.gif','All Image Files';...
'*.*','All Files' }, '选择待处理图像', ...
'images\');
file = fullfile(pathname, filename);%文件路径和文件名创建合成完整文件名
id = Get_Id(file);%得到file中的所有对象
Img = imread(file);%根据路径和文件名读取图片到Img
[Plate, bw, Loc] = Pre_Process(Img); % 车牌区域预处理
result = Plate_Process(Plate, id); % 车牌区域二值化处理
% 寻找连续有文字的块,若长度大于某阈值,则认为该块有两个字符组成,需要分割
bw = Segmation(result);
words = Main_Process(bw); % 主流程处理
Write_Mask(words, id); % 写出到模板库
str = Pattern_Recognition(words); % 识别
function id = Get_Id(file)
% 获取图像id信息
% 输入参数:
% file——图像路径
% 输出参数:
% id——图像id信息
info = imfinfo(file);
FS = [422227 354169 293184 235413 214202 ...
130938 490061 120297 98686 137193 ...
80558 46208 69947 58110 62115 ...
59072 52168 60457 53979 50223];
id = find(FS == );
if isempty(id)
warndlg('未建立该图像模板库,可能运行出错!', '警告');
id = 1;
end
function R = Cubic_Spline(P)
% 三次样条插值
% 输入参数:
% P——节点矩阵
% 输出参数:
% R——样条节点矩阵
% 计算相邻插值点之间的弦长
chordlen = sqrt(sum(diff(P, [], 1).^2,2));
% 将弦长参数归一化到[0,1]上
chordlen = chordlen/sum(chordlen);
% 计算每个插值节点处的累加弦长,作为给点处的参数
cumarc = [0; cumsum(chordlen)];
x = cumarc;
N = size(P, 1);
R = [];
% 以下部分为一元三次样条插值的程序,对于空间三维数据,以同样的累加
% 弦长作为参数,对x,y,z分量做三次一元样条插值得到的结果便是对三维数据
% 做三次样条插值
for k = 1 : size(P, 2)
y = P(:, k);
m = zeros(1, N);
M = zeros(1, N);
n = m;
d = m;
A = eye(N);
A = 2*A;
m(1) = 1;
n(N) = 1;
m(N) = 1;
n(1) = 1;

for i = 2:N-1
m(i) = (x(i+1)-x(i))/(x(i+1)-x(i-1));
n(i) = 1 - m(i);
d(i) = 6*((y(i+1) - y(i))/(x(i+1) - x(i)) - (y(i) - y(i-1))/(x(i) - x(i-1)))/(x(i+1)-x(i-1));
end
for j = 1 : N-1
A(j, j+1) = m(j);
A(j+1, j) = n(j+1);
end
p = A(2:N-1, 2:N-1);
q = d(2:N-1);
Q = inv(p)*q';
M = zeros(1,N);
M(1,1) = 0;
M(1,N) = 0;
M(1,2:N-1)= Q;
S = [];
temp = [];
for i = 1:N-1
% 对每一个分量计算出来的插值曲线进行采样,以便将其画出。
s = 50;% 采样点个数
z = linspace(x(i),x(i+1),s);
h = x(i+1)-x(i);