Hello,
I have a video of someone who has an orange in his hand and my goal is to track this orange. First of all i have to create a ROI around this orange after the segmentation:
Left: the original video , Right: the video with segmentation to just have the orange.
Left: The ROI around the orange, Right: The virtual camera who follows the orange thanks to the ROI.
First of all i read the video and after, with a while, i must detect the orange in each frame:
videoFileReader = VideoReader('VT.mp4');;VideoPlayer = vision.VideoPlayer('Position',[100,100,1920,1080]);%% Detect oranges in each frame
while hasFrame(videoFileReader) videoFrame = readFrame(videoFileReader); Bin=videoFrame(:,:,1); frame_binarise=imbinarize(Bin); surface=sum(sum(frame_binarise)); [X_barycentre, Y_barycentre] = calcul_Barycentre(frame_binarise); X=floor(X_barycentre); Y=floor(Y_barycentre); se = strel("diamond",1); contour = frame_binarise - imerode(frame_binarise,se); imshow(frame_binarise);end
My baryencenter function:
function [X_barycentre, Y_barycentre] = calcul_Barycentre(img)[LIG,COL]=size(img);% Surface
S = sum(sum(img));% X_barycentre
sumX = 0;for l=1:1:COL sumX = sumX+l*sum(img(:,l));endX_barycentre = sumX/S;% Y_barycentre
sumY = 0;for k=1:1:LIG sumY = sumY+k*sum(img(k,:));endY_barycentre = sumY/S;
So my probleme is how to make the ROI around the orange ?
Best Answer