matlab与opencv读取同一帧视频时会得到不同的像素值

20 篇文章 2 订阅
4 篇文章 0 订阅

        我正在尝试将 matlab 脚本转换为 python。 matlab 脚本读取 .avi 视频文件,并且对于视频中的每个帧,它得到三通道(红色,绿色和蓝色)的像素值,以便我做后续处理。

        但是奇怪的事发生了,matlab 和 python的 rgb 像素值不一样,我也知道 matlab 是 RGB 方式存储,python 的 opencv 是 BGR 存储,但是匹配后仍不一样,到目前为止,我似乎只发现 opencv 的 cv2 是按 BGR 存储,其他的都是按 RGB 方式存储。

现象

        通过比较两者读同一帧视频的结果来看,很少有一致的,基本存在三种情形:

  • 同一像素点通道值差2
  • 同一像素点通道值差1
  • 同一像素点通道值一致

        且并不是说 R通道差2,我的G、B也差2,三个通道相差的值无一致性。

       

解决办法

        现在还未解决。

       

我认为的可能原因

        可能是解码方式不同造成的

        opencv 采用 ffmpeg 解码后的值,matlab采用自己的解码方式,因为视频帧与帧存在参考关系,视频压缩、编码的原理也基本是基于此参考关系。所以可能是解码方式的不同造成了这一个问题。

        暂时不知道如何解决这个问题

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

中南自动化学院至渝

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值