VideoReader Frame Extraction Artifacts and Inversion in MATLAB 2018a
1 view (last 30 days)
Show older comments
Arjun Desai
on 11 May 2018
Answered: Reece Teramoto
on 16 May 2018
I am had an application running on MATLAB 2015aSP1 that I want to port over to MATLAB 2018. However, I am having an issue with VideoReader script. When I extract a frame from a .mov file using MATLAB 2015aSP1, I am able to acquire the frame.
However, when I run the same set of commands with MATLAB 2018, the extracted frame has artifacts and is inverted. I have posted the code below and attached images of the MATLAB 2015 and 2018 results.
ipPath = 'path ';
obj.FrameObj = VideoReader(ipPath);
obj.NumFrames = round(obj.FrameObj.Duration*obj.FrameObj.FrameRate);
obj.CurrentTime = zeros(obj.NumFrames,1);
obj.CurrFrameIdx = 1;
obj.FrameObj.CurrentTime = obj.CurrentTime(obj.CurrFrameIdx);
frame = readFrame(obj.FrameObj);
figure;imshow(frame)
2 Comments
Walter Roberson
on 11 May 2018
Which operating system are you using? You mention .mov, which hints it might be Mac, since .mov is QuickTime ?
Accepted Answer
Reece Teramoto
on 16 May 2018
Hi Arjun,
The issue is likely due to this bug regarding the use of graphical hardware acceleration to perform video decoding on certain releases of MATLAB for some Windows systems:
Please try turning off hardware acceleration for video decoding by executing the following before reading in the video:
>> matlab.video.read.UseHardwareAcceleration('off')
As a reference, the following documentation explains the use of graphics hardware for decoding some video types on Windows:
0 Comments
More Answers (0)
See Also
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!