
How can I segment depth image?
1 visualizzazione (ultimi 30 giorni)
Mostra commenti meno recenti
Ajith Kumar Rajendra
il 23 Dic 2020
Commentato: Image Analyst
il 24 Dic 2020
I have a depth image data obtained from kinect sensor in form of 424x512 unit 16 which contains an object. I want to segment only the object from the depth image. I have tried using pcfitplane using the coressponding point cloud data of the depth image but I was able to segment one plane. Could anyone please suggest me a way to segment only the object(a box) from the depth image?
0 Commenti
Risposta accettata
Image Analyst
il 23 Dic 2020
Try this:
clc; % Clear the command window.
clear all;
close all;
workspace; % Make sure the workspace panel is showing.
format short g;
format compact;
fontSize = 15;
fprintf('Beginning to run %s.m ...\n', mfilename);
rgbImage = imread('color_image.png');
subplot(2, 2, 1);
imshow(rgbImage);
axis('on', 'image');
title('Original RGB Image');
s = load('meta_data.mat')
imgDepth = s.imgDepth;
subplot(2, 2, 2);
imshow(imgDepth, []);
impixelinfo
title('Depth Image');
subplot(2, 2, 3);
histogram(imgDepth);
grid on;
title('Histogram of Depth Image');
binaryImage = imgDepth > 1025 & imgDepth < 1050;
% Fill holes
binaryImage = imfill(binaryImage, 'holes');
% Take largest blob.
binaryImage = bwareafilt(binaryImage, 1);
subplot(2, 2, 4);
imshow(binaryImage, []);
impixelinfo
title('Binary Image');
fprintf('Done running %s.m ...\n', mfilename);

6 Commenti
Image Analyst
il 24 Dic 2020
You can either find the bounding box or find the centroid and the boundary and the distance of the centroid to all the boundary pixels, then use findpeaks() to find the 4 corners. I'm attaching shape recognition demos.
Più risposte (0)
Vedere anche
Categorie
Scopri di più su Kinect For Windows Sensor in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!