How to create the output Video using Videowriter.
Show older comments
I am tracking an object by mouse selection and want to save the video with tracking results. Here is my code.
videoReader = vision.VideoFileReader('1.mp4'); videoFrame = step(videoReader); figure; imshow(videoFrame); title('Select the Object'); rect = getrect; bboxPoints = bbox2points(rect(1, :)); pointTracker = vision.PointTracker('MaxBidirectionalError', 2); points = bboxPoints; initialize(pointTracker, points, videoFrame); videoPlayer = vision.VideoPlayer('Position',... [100 100 [size(videoFrame, 2), size(videoFrame, 1)]+30]); oldPoints = points; while ~isDone(videoReader)
videoFrame = step(videoReader);
[points, isFound] = step(pointTracker, videoFrame);
visiblePoints = points(isFound, :);
oldInliers = oldPoints(isFound, :);
if size(visiblePoints, 1) >= 1 % need at least 2 points
[xform, oldInliers, visiblePoints] = estimateGeometricTransform(...
oldInliers, visiblePoints, 'similarity', 'MaxDistance', 4);
bboxPolygon = reshape(bboxPoints', 1, []);
videoFrame = insertShape(videoFrame, 'Polygon', bboxPolygon, ...
'LineWidth', 2);
videoFrame = insertMarker(videoFrame, visiblePoints, '+', ...
'Color', 'white');
oldPoints = visiblePoints;
setPoints(pointTracker, oldPoints);
end
% Display the annotated video frame using the video player object
step(videoPlayer, videoFrame);
% stop(reader);
end
release(videoFileReader); release(videoPlayer); release(pointTracker);
Answers (0)
Categories
Find more on Video Formats and Interfaces 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!