第 03 章 基于多尺度形态学提取眼前节组织-全套系统MATLAB智能驾驶深度学习
·
MATLAB智能驾驶深度学习模块
在汽车智能技术、汽车新能源技术、汽车电子这个群雄逐鹿的赛道。智能驾驶技术的要求也在不断的提升。
智能车辆教学平台、智能网联教学平台、汽车电子教学设备、在仿真应用开发部分,目前主流的系统有很多,常用的基础部分和算法开发,智能驾驶模块,较好的还是matlab平台。
本文从多尺度形态学提取技术展开特征分析的讨论。
全套源码下载–>传送门
对于子函数:
Edge_One.m
function Gf = Edge_One(G, u)
if nargin < 2
% 默认参数
u = rand(1, length(G));
u = u/sum(u(:));
end
Gf = zeros(size(G{1}));
for i = 1 : length(G)
% 加权组合
Gf = Gf + u(i)*double(G{i});
end
% 统一类型
Gf = im2uint8(mat2gray(Gf));
初始化泛处理
Coef.m
function ua = Coef(fa, f)
% 元素个数
N = length(f);
% 初始化
s = [];
for i = 1 : N
% 当前结果
fi = f{i};
% 交叉差分
si = supoles(fi, f);
% 存储
s = [s si];
end
% 归一化处理
sp = min(s(:));
sa = supoles(fa, f);
ka = sp/sa;
k = 0;
for i = 1 : N
fb = f{i};
s = [];
for i = 1 : N
fi = f{i};
% 交叉差分
si = supoles(fi, f);
% 存储
s = [s si];
end
% 归一化处理
sp = min(s);
sb = supoles(fb, f);
kb = sp/sa;
k = k + kb;
end
% 均值
ua = ka/k;
多尺度运算及融合处理
Main_Process.m
function result = Main_Process(Img, n)
% 灰度化
if ndims(Img) == 3
I = rgb2gray(Img);
else
I = Img;
end
% 设置5个算子
g1 = [0 1 0
0 1 0
0 1 0];
g2 = [0 0 0
1 1 1
0 0 0];
g3 = [0 0 1
0 1 0
1 0 0];
g4 = [1 0 0
0 1 0
0 0 1];
g5 = [0 1 0
1 1 1
0 1 0];
% 对5个算子,分别多尺度计算
Gi1 = Multi_Process(I, g1, n);
Gi2 = Multi_Process(I, g2, n);
Gi3 = Multi_Process(I, g3, n);
Gi4 = Multi_Process(I, g4, n);
Gi5 = Multi_Process(I, g5, n);
% 整合到cell
G{1} = Gi1;
G{2} = Gi2;
G{3} = Gi3;
G{4} = Gi4;
G{5} = Gi5;
% 均值系数
ua1 = Coef(Gi1, G);
ua2 = Coef(Gi2, G);
ua3 = Coef(Gi3, G);
ua4 = Coef(Gi4, G);
ua5 = Coef(Gi5, G);
% 组合
u = [ua1, ua2, ua3, ua4, ua5];
% 权重
u = u/sum(u);
% 加权融合
Gf1 = Edge_One(G, u);
result = Gf1;
形态学检测函数
Multi_Process.m
function [Gi, ng] = Multi_Process(I, g, n)
% 默认参数检测
if nargin < 3
n = 6;
end
% 初始化
ng = g;
for i = 1:n
% 膨胀
ng = imdilate(ng, g);
end
% 依次执行开、膨胀、闭、腐蚀形态学操作
Gi1 = imopen(I, ng);
Gi1 = imdilate(Gi1, ng);
Gi2 = imclose(I, ng);
Gi2 = imerode(Gi2, ng);
% 差分
Gi = imsubtract(Gi1, Gi2);
出来效果如图:

figure;
imshow(Img)
得到

运行主流程文件
main.m
全套源码下载–>传送门
更多推荐
所有评论(0)