最近接触点云比较多,如果把图像投影到点云应该挺有意思。
首先需要载入图像,然后做个球或其他什么形状的点云,这里可以参考球坐标公式。
最后通过pcshow将像素输出到点云上即可。
原图:
投影后的点云:
代码如下:
clear all;
close all;
clc; img = imread('lena.jpg'); [m,n,d]=size(img);
I=reshape(img,[],d); R=;
x=zeros(m*n,);
y=zeros(m*n,);
z=zeros(m*n,);
num = ; %做个球。。。
for j=-pi/:pi/n:pi/-pi/n
for i=:*pi/m:*pi-*pi/m num=num+;
x(num) = R.*cos(j).*cos(i);
y(num) = R.*sin(j).*cos(i);
z(num) = R.*sin(i); end
end pcshow([x y z],[I I I]); %如果是彩色图:pcshow([x y z],I);
本篇是参考matlab中pcshow例子写的,区别是例子中没有显性的写球坐标公式,其实都差不多,使用全景图效果应该更好些。
matlab帮助文档:
https://ww2.mathworks.cn/help/vision/ref/pcshow.html?requestedDomain=cn