IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 游戏开发 -> 移动平台、线激光扫描、物体三维重建 -> 正文阅读

[游戏开发]移动平台、线激光扫描、物体三维重建

本文装置基于一维运动平台-传送带,可以实现单视角线激光扫描三维重建,也可实现多视角多线激光扫描三维重建。内容包括:标定工作(相机标定、光平面标定、扫描方向标定、多相机全局标定)、激光中心线提取工作、图像和点云处理工作等等。
主函数代码如下, 涉及各部分的代码在均在工程中自定义实现:

clc
clear
close all
%数据载入区———————————————
A255440 = load('A255440.mat');
R255440 = load('R255440.mat');
T255440 = load('T255440.mat');
laserPlane255440 = load('laserPlane255440.mat');
x255440 = load('x.mat');
y255440 = load('y.mat');
z255440 = load('z.mat');
%
A = A255440.A;
R = R255440.R;
T = T255440.T;
a = laserPlane255440.a;
b = laserPlane255440.b;
c = laserPlane255440.c;
d = laserPlane255440.d;
x =x255440.x; 
y =y255440.y; 
z =z255440.z; 
%生成点云数据———————————————
Files = dir(fullfile('../img2/','*.bmp'));
picture_num = length(Files);
% WCS = [];%所有点世界坐标
WCS = zeros(100000,3);
Points = zeros(100000,3);
points_num = 0;
for frame_index = 1 : 291
    fprintf('Processing %d th image...\n',frame_index);
    pictures = {Files.name};
    framename = pictures{frame_index};
    frame = imread(framename);
    laserPixel = findLaserCenter(frame,1,1451,400,1200,0);
    %调用findLaserCenter函数提取中心线
    for pixel_index = 1 : length(laserPixel)
        [Xw, Yw, Zw] = pcs2wcs(laserPixel(pixel_index, 1), laserPixel(pixel_index,2), A,R(:,:,7), T(:,:,7), a, b, c, d);
        %调用pcs2wcs函数,将像素坐标转化为世界坐标系坐标
        Xw = Xw + x * (picture_num - frame_index);%物体运动方向是向上的,所以Yw是有变化的。
        Yw = Yw + y * (picture_num - frame_index);
        Zw = Zw + z * (picture_num - frame_index);
        %最后一根扫描线是Yw,第一根扫描线在最终的三维模型中是最上面的一根激光线,所以要在Yw的基础上加上其余扫描线间的间隔。
        WCS(pixel_index,:) = [Xw,Yw,Zw];
        %得到三维点云数据
    end
    Points(points_num + 1 : points_num + length(laserPixel),:) = WCS(1 : length(laserPixel),:);
    points_num = points_num + length(laserPixel);
end
save('..\3D_point255440.txt', 'Points', '-ascii');%保存在lightpoint_a1.txt文本文档中
fprintf('   Processing Complete! Saved as ‘3D_point255440.txt‘ \n');%命令行窗口打印这段文字

加qq:936874728与作者交流
结果如下:
在这里插入图片描述部分视角拼接工作:
在这里插入图片描述

  游戏开发 最新文章
6、英飞凌-AURIX-TC3XX: PWM实验之使用 GT
泛型自动装箱
CubeMax添加Rtthread操作系统 组件STM32F10
python多线程编程:如何优雅地关闭线程
数据类型隐式转换导致的阻塞
WebAPi实现多文件上传,并附带参数
from origin ‘null‘ has been blocked by
UE4 蓝图调用C++函数(附带项目工程)
Unity学习笔记(一)结构体的简单理解与应用
【Memory As a Programming Concept in C a
上一篇文章      下一篇文章      查看所有文章
加:2022-03-22 20:55:47  更:2022-03-22 20:58:19 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/28 3:38:27-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码