点云从深度和RGB图像

86 Ansichten(30天)的
minehaha
minehaha 2019年4月13日上午
大家好,我的目标是 创建一个点云从深度图像和RGB图像 我来自kinect。成功我计算坐标和视觉深度地图作为一个云,但不知道如何添加从RGB颜色信息。
有没有一种方法如何插入RGB ptCloud矩阵作为一种颜色参数?
% ptCloud = pointCloud(点“颜色”,cmatrix);
我发现
scatter3
在讨论剧情,但是在我的情况下它不显示正确的值。
任何建议吗?
谢谢你!
clearvars
%负载深度
最后的{1}= [“FinalKamera.hdr”];
线性= hdrread(最后的{1});
线性=线性(:,:1);
%负载rgb
rgb = imread (“FinalKamerargb.jpeg”);
%深度坐标计算
点= 0 (512 * 424,3);
公司= 1;
i = 1:424
j = 1:512
点(公司,1)= (i - 256.4626) *线性(i, j) / (365.3277);% x数组
点(公司,2)= (j - 213.1488) *线性(i, j) / (366.8126);% y数组
点(公司,3)=线性(i, j);% z数组
公司=公司+ 1;
结束
结束
% ptCloud = pointCloud(点“颜色”,cmatrix);
% pcshow(点);
clr =重塑(双(rgb) / 255, [], 3);
scatter3(点(:1),点(:,2),点(:,3),6日,clr,“。”)
紧vis3d
标题(“点云”);包含(“X”);ylabel (“Y”);zlabel (“Z”);

Antworten (2)

Andrej Satnik
Andrej Satnik 我麦2020
Bearbeitet:Andrej Satnik 我麦2020
这篇文章是旧的,但对于那些正在寻找答案这是更快的方法没有循环。如果我错了,请纠正我。
%深度深度图像格式的两倍
Sd =大小(深度);
(X, Y) = meshgrid (1: Sd (2), 1: Sd (1));
% K是标定矩阵
X = X - K (1、3) + 0.5;
Y = Y - K (2、3) + 0.5;
XDf =深度/ K (1,1);
YDf =深度/ K (2, 2);
X = X。* XDf;
Y = Y。* YDf;
XY =猫(X, Y);
云=猫(3,XY,深度);
云=重塑(云,[],3)/ 1000.0;
%如果您可以使用matlab点云图书馆
云= pointCloud(云);
pcshow(云);
快乐的编码。
Andrej最好
1 Kommentar
默罕默德克
默罕默德克 9月8日。2021
@Andrej在代码你读过rgb图像吗?

Melden您西奇,嗯祖茂堂kommentieren。


Preetham Manjunatha
Preetham Manjunatha 我4 Okt。2022
链接 可以帮助RGB-D图像转换为点云,提供摄像机内参数。

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!

翻译的