概述
正常RGB 转 NV21思路:
1:RGB转YUV(与系数矩阵相乘,具体可百度)
2:YUV转NV21(此时YUV的行数是RGB的1.5倍,后1-1.5倍行的UV需要调整,NV21先V后U)
3:写NV21数据
存在问题:python的for循环挨个写入太慢了,一张4K*3K的JPG图转YUV需要10S以上;
快速实现RGB 转 NV21思路(4K*3K图仅需0.3S):
1:利用CV2自带的BGR转I420(I420的格式排列请咨询百度,与NV21很相似)
yuvData = cv2.cvtColor(rgbData, cv2.COLOR_BGR2YUV_I420)
2:I420转NV21,利用numpy矩阵加速运算
height = rgbData.shape[0]
width = rgbData.shape[1]
uData = yuvData[height: height + height // 4, :]
uData = uData.reshape((1, height // 4 * width))
vData = yuvData[height + height // 4: height + height // 2, :]
vData = vData.reshape((1, height // 4 * width))
uvData = np.zeros((1, height // 4 * width * 2))
uvData[:, 0::
最后
以上就是执着鼠标为你收集整理的Python RGB转NV21快速实现思路及部分代码的全部内容,希望文章能够帮你解决Python RGB转NV21快速实现思路及部分代码所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复