.matファイルを.pcdファイル
1294 ワード
Matlabの3 D行列で、0点以外は点群を表します.非0点座標(i,j,k)は点の空間位置である
matlabのmatファイルをc++で読み込む場合は、現在のエンジニアリングに対してmatlabインタフェースを構成する必要があります.
インタフェースを構成しない場合はmatlabを用いるもよい.matデータは.pcdでは、点群を生成します.
matlabのmatファイルをc++で読み込む場合は、現在のエンジニアリングに対してmatlabインタフェースを構成する必要があります.
インタフェースを構成しない場合はmatlabを用いるもよい.matデータは.pcdでは、点群を生成します.
function ptCloud=mat2pointCloud(flow,color)
% Matlab pointCloud
% matlab :
% https://ww2.mathworks.cn/help/vision/lidar-and-point-cloud-processing.html?s_tid=CRUX_lftnav
% :
% flow: , 0
% color: , r g b
% :
% ptCloud pointCloud
% Author : Ming, 11/4/2019
th=0;
flow = imbinarize(flow,th);% 'adaptive'
xyzPoints=zeros(sum(flow(:)),3);
xyzColor= zeros(sum(flow(:)),3);
count=0;
[height,width,deepth] = size(flow);
for jj=1:width
jj
for kk=1:deepth
for ii=1:1:height
if flow(ii,jj,kk)>0.0
count=count+1;
xyzPoints(count,:)=[ii,jj,kk];
xyzColor(count,:)=color.*flow(ii,jj,kk);
end
end
end
end
ptCloud = pointCloud(xyzPoints,'Color',xyzColor);
% pcwrite(ptCloud,'ptCloud.pcd','Encoding','ascii');%matlab pcd
% ptCloud = pcread('ptCloud.pcd');%
end