How to save the output Video using Videowriter.

19 ビュー (過去 30 日間)
VENKATA NARESH MALLADI
VENKATA NARESH MALLADI 2017 年 3 月 31 日
回答済み: Sharmila Raghu 2017 年 4 月 4 日
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);

回答 (1 件)

Sharmila Raghu
Sharmila Raghu 2017 年 4 月 4 日
To save the video with tracking results, you can use the "writeVideo" command. The following is the documentation link for the same:

カテゴリ

Help Center および File ExchangeTracking and Motion Estimation についてさらに検索

タグ

Community Treasure Hunt

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

Start Hunting!

Translated by