How to draw centroid that include the value inside bounding box?

2 views (last 30 days)
Hello, I want to ask for a little help. I'm writing a coding here on face tracking. But I dont know how to draw the centroid which also include the value inside the bounding box. Here's the coding:
clc
clear
%Create a detector object.
faceDetector = vision.CascadeObjectDetector;
%Read input image from Lenovo EasyCamera
obj = imaq.VideoDevice('winvideo', 1, 'MJPG_320x240');
set(obj,'ReturnedColorSpace','rgb');
%Preview(obj)
figure('menubar','none','tag','webcam');
while(true)
frame=step(obj);
%Detect faces.
bboxes = step(faceDetector,frame);
%Annotate detected faces.
IFaces = insertObjectAnnotation(frame,'rectangle',bboxes,'ME');
imshow(IFaces,'border','tight')
f=findobj('tag','webcam');
if(isempty(f))
close(gcf)
break
end
pause(0.05)
end
%closepreview(obj)
release(obj)

Answers (2)

Erik S.
Erik S. on 9 Feb 2015
Hi
Use the vision.BlobAnalysis method. It returns both bounding box and centroid.
  1 Comment
Image Analyst
Image Analyst on 9 Feb 2015
MOHAMAD's "Answer" moved here since it's not an Answer to the original question:
If I'm using vision.CascadeObjectDetector, can it be done too? Thank you for your help Erik S. :)

Sign in to comment.


Dima Lisin
Dima Lisin on 9 Feb 2015
Hi Mohamad,
vision.CascadeObjectDetector gives you bounding boxes of the form [x, y, width, height]. You can compute the centers of the bounding boxes as follows centers = bboxes(:, 1:2) + bboxes(:, 3:4) / 2. Then you can use the insertMarker function to mark the centers in your image.
  4 Comments
MOHAMAD AFIF
MOHAMAD AFIF on 11 Feb 2015
I have try it, but still the bounding box doesn't show the value of the centroid
MOHAMAD AFIF
MOHAMAD AFIF on 12 Feb 2015
After try and try and make a lots of troubleshoot in the coding, I've get what I want. Thank you Dima Lisin for your help and guide. It really work!! :)

Sign in to comment.

Community Treasure Hunt

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

Start Hunting!