How to get RGB-values out of video frames using VideoReader-function. When reading an individual frame using impixel-function I get only 3 times zero for RGB.
7 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Pekka Koivisto
am 30 Jun. 2015
Kommentiert: Pekka Koivisto
am 3 Jul. 2015
videoObject = VideoReader('TypeI_4_1_TestClipped.wmv');
imageData = read(videoObject);
numFrames = get(videoObject, 'NumberOfFrames');
Heig= get(videoObject, 'Height');
Wid= get(videoObject, 'Width');
Rateframe= get(videoObject, 'FrameRate');
time=get(videoObject, 'Duration');
% To cut down the time for this trial height and width are reduced
Wid=200;
Heig=100;
Hii = Heig*(ones(1,Wid));
mov(10).cdata = read(videoObject,10);
P1=impixel(mov(10).cdata,wii,Hii);
% or
imagedata=read(videoObject,10);
P2=impixel(mov(10).cdata,wii,Hii);
% Both P1 and P2 appear to became 200 x 3 full of zeros
4 Kommentare
Akzeptierte Antwort
Nalini Vishnoi
am 2 Jul. 2015
Hi Pekka,
I understand that you would like to get the RGB values out of video frames using 'VideoReader' and 'impixel' function. As other users have pointed out there is some ambiguity in your example code, hence I am unable to test it. Please find a small example below demonstrating the use of 'VideoReader' and 'impixel' functions to read the RGB value of a frame:
>> xyloObj = VideoReader('xylophone.mp4');
>> frame = read(xyloObj,10); % reading the 10th frame
>> c = 200;
>> r = 100;
>> rgb = impixel(frame, c, r); % returns the RGB value of column 200 and row 100
>> c = 101:200;
>> r = 1:100;
>> rgb = impixel(frame, c, r); % returns the RGB values of frame(r,c). Here r and c are vectors
I hope the above example helps. You can find more information about how impixel function works in the documentation link here.
Thanks,
Nalini
Weitere Antworten (0)
Siehe auch
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!