【问题标题】:YUV to RGB conversion with OpenCV for Android camera使用 OpenCV for Android 相机将 YUV 转换为 RGB
【发布时间】:2014-10-19 10:23:00
【问题描述】:

如果我理解正确,当我使用 OpenCV 使用 cvtColor(CV_YUV420sp2BGR) 函数将 YUV 转换为 RGB 时,我实际上调用了 YUV420sp2RGB888Invoker 类。

转换公式为

R = 1.164(Y - 16) + 1.596(V - 128)
G = 1.164(Y - 16) - 0.813(V - 128) - 0.391(U - 128)
B = 1.164(Y - 16) + 2.018(U - 128)

这些系数适用于CCIR 601 spec,其中Y、U和V的范围分别为[16 … 235]、[16 … 240]和[16 … 240].

但 Android 相机(特别是在 Snapdragon 上)似乎为所有组件返回了 [0 … 255] 的完整 (JFIF) 范围的 NV21 图像(另请参阅 https://stackoverflow.com/a/12702836/192373)。

有没有办法为 JFIF 颜色范围使用 OpenCV 颜色转换?

【问题讨论】:

  • 有很多similar posts。你试过了吗?
  • 感谢您的链接,@karlphillip。我绝对阅读了其中的大部分内容,甚至回答了其中一些。我什至链接到其中之一。但我还没有找到与我的具体问题有关的问题。

标签: opencv colors android-camera yuv


【解决方案1】:

根据这个 OpenCV 文档:http://docs.opencv.org/modules/imgproc/doc/miscellaneous_transformations.html

变换 CV_YCrCb2BGR 似乎是您正在寻找的。它使用您链接的 stackoverflow 答案中提到的相同系数(全范围为 1.403、0.714、0.344 和 1.773)。

【讨论】:

猜你喜欢
  • 2013-05-04
  • 1970-01-01
  • 1970-01-01
  • 2012-02-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多