I want to load a video and extract frames from it, save them and then use rgb2gray, edge detection and matching on specific frames...what will be the MATLAB commands for it??

1 次查看(过去 30 天)
VideoReader

采纳的回答

Florian Morsch
Florian Morsch 2018-5-24
To load a video: videoFileReader = vision.VideoFileReader('Video.avi');
Take a frame from the video: videoFrame = step(videoFileReader);
RGB to gray: videoFrameGray = rgb2gray(videoFrame);
Edge detection (canny or sobel): sobelEdge = edge(image,'sobel'); cannyEdge = edge(image,'canny');
For matching you have to set the features yourself and then check the frames you want for the features.
  2 个评论
Florian Morsch
Florian Morsch 2018-5-24
编辑:Florian Morsch 2018-5-24
If you use
videoFrame = step(videoFileReader);
thats only for one frame. If you want it for multiple frames you can use a while-loop with a condition. For example you can create a while-loop which runs as long as you video is playing. When the video is finished, the loop ends, like this:
while ~isDone(videoFileReader)
% Do something
end
Also dont forget to release the file reader and if you display it, also the video player.

请先登录,再进行评论。

更多回答(2 个)

Image Analyst
Image Analyst 2018-5-26
See my attached demo.

SURILA GUGLANI
SURILA GUGLANI 2018-5-26
Thank you.

产品


版本

R2017a

Community Treasure Hunt

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

Start Hunting!

Translated by