基于机器视觉和Dijkstra算法的平面建筑群地图路线规划matlab仿真

简介: 本程序基于机器视觉与Dijkstra算法,实现平面建筑群地图的路径规划。通过MATLAB 2022A读取地图图像,识别障碍物并进行路径搜索,支持鼠标选择起点与终点,最终显示最优路径及长度,适用于智能导航与机器人路径规划场景。

1.程序功能描述
基于机器视觉和Dijkstra算法的平面建筑群地图路线规划matlab仿真,输入一张平面建筑群的地图,然后通过机器视觉识别地图里面的障碍物,然后通过dijkstra算法搜索路径。

2.测试软件版本以及运行结果展示
MATLAB2022A版本运行

1.jpeg
2.jpeg
3.jpeg
4.jpeg

3.核心程序

% 读取图片
% 从文件'map.jpg' 中读取图像并存储在 Maps 变量中
Maps = imread('map2.jpg'); 
% 将读取的图像存储到 Maps0 中,可能用于后续的比较或其他操作
Maps0 = Maps; 
% 创建一个新的图形窗口
figure; 
% 显示图像 Maps
imshow(Maps); 
% 为图像添加标题为 '建筑群平面图'
title('建筑群平面图'); 

% 鼠标点击起点
% 等待用户按下鼠标按钮
waitforbuttonpress; 
% 获取当前鼠标点击位置的坐标
point  = get(gca,'CurrentPoint'); 
% 将鼠标点击的坐标四舍五入并加 1 存储在 S1 中,作为起点
S1     = round(point(1, 1:2)) + 1; 
.....................................................................

Path_search(:,3:4)      = 1;

% 显示结果
% 定义显示路径的颜色
clor=[0,0,255]; 
% 如果原始图像是单通道,将其复制为三通道
if size(Maps0, 3) == 1
    Maps0 = double(repmat(Maps0, [1,1,3]));
end
% 分离原始图像的 RGB 通道
R = Maps0(:, :, 1);
G = Maps0(:, :, 2);
B = Maps0(:, :, 3);
% 将地图遮罩部分的颜色设置为定义的颜色
R(map_mask) = clor(1);
G(map_mask) = clor(2);
B(map_mask) = clor(3);
% 合并修改后的 RGB 通道
Maps0 = cat(3, R, G, B);

% 在图像上添加路径形状
Maps0 = insertShape(Maps0, 'Rectangle', Path_search, 'Color', [255,0,0], 'LineWidth', 4); 
Maps0 = insertShape(Maps0, 'Rectangle', Path_search(1, :), 'Color', [0,255,0], 'LineWidth', 20); 
Maps0 = insertShape(Maps0, 'Rectangle', Path_search(end, :), 'Color', [255,155,0], 'LineWidth', 20); 
% 创建一个新的图形窗口显示结果
figure; 
imshow(Maps0); 
% 为结果图像添加标题,显示路线规划结果和路径长度,此处可能存在错误,因为 dist 变量在前面未定义,可将 dist 的计算添加到 Dijkstra 算法中
title(['路线规划结果,路线长度:',num2str(dist)]);

4.本算法原理
利用高清摄像头等设备,从不同角度对平面建筑群进行拍摄,获取连续的图像序列。这些图像需覆盖目标区域,确保采集到所有建筑、道路及相关地标信息,为后续处理提供丰富原始素材。通过图像预处理,如灰度化、滤波降噪等操作后,运用边缘检测算法(如 Canny 边缘检测)识别建筑轮廓、道路边界等显著特征。同时,结合纹理分析、形状识别技术区分不同建筑类型、路口形态,将视觉图像转化为可供算法处理的结构化特征数据。机器视觉用于获取和处理地图图像信息,将现实场景中的平面建筑群地图转换为计算机能够理解和处理的数据形式。

695d1f442d3433c3f960ded5e092143a_watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=.jpg

相关文章
|
4月前
|
机器学习/深度学习 算法 机器人
【水下图像增强融合算法】基于融合的水下图像与视频增强研究(Matlab代码实现)
【水下图像增强融合算法】基于融合的水下图像与视频增强研究(Matlab代码实现)
432 0
|
4月前
|
机器学习/深度学习 算法 机器人
使用哈里斯角Harris和SIFT算法来实现局部特征匹配(Matlab代码实现)
使用哈里斯角Harris和SIFT算法来实现局部特征匹配(Matlab代码实现)
230 8
|
4月前
|
机器学习/深度学习 算法 自动驾驶
基于导向滤波的暗通道去雾算法在灰度与彩色图像可见度复原中的研究(Matlab代码实现)
基于导向滤波的暗通道去雾算法在灰度与彩色图像可见度复原中的研究(Matlab代码实现)
253 8
|
4月前
|
机器学习/深度学习 数据采集 负载均衡
结合多种启发式解码方法的混合多目标进化算法,用于解决带工人约束的混合流水车间调度问题(Matlab代码实现)
结合多种启发式解码方法的混合多目标进化算法,用于解决带工人约束的混合流水车间调度问题(Matlab代码实现)
229 0
|
4月前
|
算法 定位技术 计算机视觉
【水下图像增强】基于波长补偿与去雾的水下图像增强研究(Matlab代码实现)
【水下图像增强】基于波长补偿与去雾的水下图像增强研究(Matlab代码实现)
243 0
|
4月前
|
算法 机器人 计算机视觉
【图像处理】水下图像增强的颜色平衡与融合技术研究(Matlab代码实现)
【图像处理】水下图像增强的颜色平衡与融合技术研究(Matlab代码实现)
156 0
|
4月前
|
新能源 Java Go
【EI复现】参与调峰的储能系统配置方案及经济性分析(Matlab代码实现)
【EI复现】参与调峰的储能系统配置方案及经济性分析(Matlab代码实现)
159 0
|
4月前
|
机器学习/深度学习 编解码 算法
基于OFDM技术的水下声学通信多径信道图像传输研究(Matlab代码实现)
基于OFDM技术的水下声学通信多径信道图像传输研究(Matlab代码实现)
240 8
|
4月前
|
机器学习/深度学习 数据采集 测试技术
基于CEEMDAN-VMD-BiLSTM的多变量输入单步时序预测研究(Matlab代码实现)
基于CEEMDAN-VMD-BiLSTM的多变量输入单步时序预测研究(Matlab代码实现)
159 8
|
4月前
|
编解码 运维 算法
【分布式能源选址与定容】光伏、储能双层优化配置接入配电网研究(Matlab代码实现)
【分布式能源选址与定容】光伏、储能双层优化配置接入配电网研究(Matlab代码实现)
237 12