【发布时间】: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