本文主要介绍使用OPENCV和Python进行YUV到RGB的转换,以及制作heatmap的部分函数
参考文档:
applyColorMap for pseudocoloring in OpenCV ( C++ / Python )
YUV2RGB Opencv
YUV格式与8/10比特介绍
一般来说,视频数据中的YUV为420格式,可以简单理解为图像中,含有四个Y分量的点的正方形包含1个U分量和1个V分量。UV分量的位置在正方形内或者边上,具体取决于采样的方法。
以416x240大小的帧为例,首先是416x240个Y像素点,按行存储在YUV文件中,从开头每读取416个数据即读取了一行。然后是416x240/4个U分量,同样按行存储,不过每行只有416/2个点,一共有240/2行。然后是与U分量相同的V分量。
8比特时,1个byte就是一个像素的数值,反映在numpy中即为uint8, 在opencv中为8U;10比特时,2个byte表示一个像素值,numpy的格式变为uint16,opencv中也为16U。
读取,转换YUV像素值
1 | # 首先打开YUV文件为fyuv |
heatmap构建,叠加
1 | # 输入为单通道灰度图 |
需补充:如何制作热图的颜色-像素值对应关系