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

4 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 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.

Categories

Find more on Image Processing and Computer Vision in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!