MATLAB 图像投影到点云

最近接触点云比较多,如果把图像投影到点云应该挺有意思。

首先需要载入图像,然后做个球或其他什么形状的点云,这里可以参考球坐标公式。

最后通过pcshow将像素输出到点云上即可。

原图:

投影后的点云:

 

代码如下:

 1 clear all;
 2 close all;
 3 clc;
 4 
 5 img = imread('lena.jpg');
 6 
 7 [m,n,d]=size(img);
 8 I=reshape(img,[],d);   
 9 
10 R=1;
11 x=zeros(m*n,1);
12 y=zeros(m*n,1);
13 z=zeros(m*n,1);
14 num = 0;
15 
16 %做个球。。。
17 for j=-pi/2:pi/n:pi/2-pi/n   
18     for i=0:2*pi/m:2*pi-2*pi/m
19         
20         num=num+1;
21         x(num) = R.*cos(j).*cos(i);
22         y(num) = R.*sin(j).*cos(i);
23         z(num) = R.*sin(i);
24         
25     end
26 end
27 
28 pcshow([x y z],[I I I]);    %如果是彩色图:pcshow([x y z],I);

本篇是参考matlab中pcshow例子写的,区别是例子中没有显性的写球坐标公式,其实都差不多,使用全景图效果应该更好些。

原文地址:https://www.cnblogs.com/ybqjymy/p/13645504.html