segment point cloud data into clusters | The input point cloud must be organized (M-by-N-by-3)

15 views (last 30 days)
Hello All,
I am trying to segment 3D point cloud into clusters using pcap file. When I give pcdenoised cloud as a Input it throwing "The input point cloud must be organized (M-by-N-by-3)" . How to fix this problem?
veloReader = velodyneFileReader('data.pcap','VLP16');
xlimits = [-35 118];
ylimits = [-55 75];
zlimits = [-10 10];
player = pcplayer(xlimits,ylimits,zlimits);
for i = 1 : 600
ptCloud = veloReader.readFrame(i);
ptCloudIn = removeInvalidPoints(ptCloud);
ptcloudFil = pcdenoise(ptCloudIn);
groundPtsIdx = segmentGroundFromLidarData(ptCloudFil);
ptCloudWithoutGround = select(ptCloudFil,~groundPtsIdx,'OutputSize','full');
distThreshold =500;
[labels,numClusters] = segmentLidarData(ptCloudWithoutGround,distThreshold);
numClusters = numClusters+1;
labels(groundPtsIdx) = numClusters;
labelColorIndex = labels+1;
%colormap([hsv(numClusters);[0 0 0]]);
view(player,ptCloudFil.Location,labelColorIndex);
end

Accepted Answer

Sulaymon Eshkabilov
Sulaymon Eshkabilov on 18 Jun 2021
Probably, you'd need to generate meshes using meshgrid()
  5 Comments
Pavan Kumar B N
Pavan Kumar B N on 18 Jun 2021
@Stephen Cobeldick Still I am facing the same problem. I am able to create the grid. When I assign 11776 x 3 values to to X,Y, Z. It is giving error. Please guide me to fix this issue.
Please correct me.
t = ptCloudFil.Location(:,1);
y = ptCloudFil.Location(:,2);
u = ptCloudFil.Location(:,3);
[X,Y,Z] = ndgrid(t,y,u);
ptCloud =
pointCloud with properties:
Location: [16×1810×3 single]
Count: 28960
XLimits: [-35.7891 117.1103]
YLimits: [-65.8583 70.7026]
ZLimits: [-7.6524 7.0585]
Color: []
Normal: []
Intensity: [16×1810 uint8]
>> ptCloudFil
ptCloudFil =
pointCloud with properties:
Location: [11776×3 single]
Count: 11776
XLimits: [-34.8347 115.3167]
YLimits: [-58.5607 62.0888]
ZLimits: [-7.6524 7.0585]
Color: []
Normal: []
Intensity: [11776×1 uint8]

Sign in to comment.

More Answers (0)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!