如何获得视频帧使用VideoReader-function rgb值。当阅读一个框架使用impixel-function我只得到3次零RGB。

13个视图(30天)
videoObject = VideoReader (“TypeI_4_1_TestClipped.wmv”);
imageData =阅读(videoObject);
numFrames =得到(videoObject,“NumberOfFrames”);
确定=得到(videoObject,“高度”);
Wid =得到(videoObject,“宽度”);
Rateframe =得到(videoObject,的帧速率);
时间= (videoObject“持续时间”);
%减少试验高度和宽度的时间减少
Wid = 200;
确定= 100;
Hii =确定* ((1,Wid));
mov (10)。cdata =阅读(videoObject 10);
P1 = impixel (mov (10) .cdata, wii, Hii);
%或
imagedata =阅读(videoObject 10);
P2 = impixel (mov (10) .cdata, wii, Hii);
%都P1和P2似乎成为200 x 3 0
4评论
佩Koivisto
佩Koivisto 2015年7月3日
我已经解决了我的问题。代码中不但是在视频。在种植过程中我没有考虑帧尺寸不缩水,但是其余的框架是黑色的,在RGB = 0, 0, 0。现在当我集中像素正确我收到真正的RGB值!谢谢大家参与的问题。此致敬礼Pekka Koivisto

登录置评。

接受的答案

Nalini Vishnoi
Nalini Vishnoi 2015年7月2日
嗨佩,
我知道你想要视频帧的RGB值使用“VideoReader”和“impixel”功能。其他用户已经指出有一些歧义在示例代码中,因此我无法测试它。请找到下面的一个小例子展示了使用“VideoReader”和“impixel”函数读取一帧的RGB值:
> > xyloObj = VideoReader (“xylophone.mp4”);
> >帧=阅读(xyloObj 10);%阅读10帧
> > c = 200;
> > r = 100;
> > rgb = impixel(框架c r);%返回列的RGB值200和100行
> > c = 101:200;
> > r = 1:10 0;
> > rgb = impixel(框架c r);%返回帧的RGB值(r、c)。这里r和c是向量
我希望上面的例子有帮助。你可以找到更多的信息关于impixel函数是如何工作的文档链接 在这里
谢谢,
Nalini
1评论
佩Koivisto
佩Koivisto 2015年7月2日
是的我发送wii在代码中是没有定义但这不是问题的关键。我复制粘贴代码Nalini发给我用视频和测试(wmv)文件我在(是的它已经充满了检查除了0 rgb: s)再一次我收到一个矩阵的零。不幸的是这段代码并没有帮助我在我的问题。所有最好的Pekka Koivisto

登录置评。

更多的答案(0)

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!