关于UvA 3D Human Pose Recovery Dataset的数据处理

UvA 3D Human Pose Dataset

阿姆斯特丹大学的3D人体姿势恢复数据集 --文档介绍

提出该数据集的对应论文:M. Hofmann等人 09’ CVPR & 12‘ IJCV 的工作

Multi-view 3D Human Pose Estimation in Complex Environment

这篇北大的论文里也用到了UvA数据集:Robust Estimation of 3D Human Poses from a Single Image ——对应code
关于UvA 3D Human Pose Recovery Dataset的数据处理_第1张图片
关于Bayer Filter -wiki

RGB “Bayer” Color and MicroLenses

OpenCV官方文档 cvtColor()

关于UvA 3D Human Pose Recovery Dataset的数据处理_第2张图片
关于UvA 3D Human Pose Recovery Dataset的数据处理_第3张图片

raw2rgb

参数选择:enum cv::ColorConversionCodes
关于UvA 3D Human Pose Recovery Dataset的数据处理_第4张图片

# raw2rgb
import cv2
import numpy as np
import os
def raw2rgb(file_pathname):
    #遍历该目录下的所有图片文件
    for filename in os.listdir(file_pathname):
        #print(filename)
        ff=filename[:-4] # 去除原本后缀
        img=cv2.imread(file_pathname+'/'+filename)
        # change to gray
        # img=cv2.cvtColor(img,cv2.COLOR_BGR2GRAY) # 将RGB转成单通道灰度图
        # image_np=cv2.cvtColor(img,cv2.COLOR_GRAY2BGR) # 将单通道灰度图转成3通道灰度图
        img=np.fromfile(file_pathname+'/'+filename,dtype='uint8') 
        # np.float32  => 105280  (280*376)  这样划分是不对的,得不到想要的图
        # 421120=560*752 (如该dataset所述)
        img=img.reshape(560,752,1)  # (rows,cols,channels)
        # 一定要找到合适的shape,因为.raw图像里是二进制存储的...只有一堆数...所以你要自己确定shape
        
        # img=cv2.cvtColor(img,img,cv2.COLOR_BayerGR2BGR,3) 
        # 这是C++ openCV的调用方式 一定要注意区分!这个会报错的...疯狂error
        
        image=cv2.cvtColor(img,cv2.COLOR_BayerGB2BGR)  
        # 很奇怪 数据集介绍界面说使用BayerGR2BGR 但是这样生成的是蓝调的..所以我多试了几种,发现这个是正常恢复的
        # print(img)
        # cv2.imwrite('1.jpg', img)   
        # cv2.imshow("img",img) # 注意使用imshow()显示图像时,必须是uint8数据,如果是uint16,则需要进行转换
        # save figure
        cv2.imwrite('D:/trainstation_cam0-2_scenario01-1/cam0/scenario01-1_change'+"/"+ff+".jpg",image)       

if __name__=='__main__':

    im_file='D:/trainstation_cam0-2_scenario01-1/cam0/scenario01-1'
    raw2rgb(im_file)

参考:

raw图像格式

opencv 打开raw格式的图像 C++/Python

python opencv cv2.cvtColor()方法(将图像从一种颜色空间转换为另一种颜色空间)

【opencv_python学习之三】图像处理(一)更改色彩模式

使用imageio进行转换 [我用这个好像不行?]

raw to jpg 互转

如果你想使用Matlab进行转换

可以试试这个方式:MATLAB如何实现RAW2RGB算法

Github上开源了一个封装好的工具:rawpy [我没用过…如果你想试试的话]

rawpy提取raw图像并转化为RGB

关于另外的一些 人体姿势识别数据集 [虽然我用不到…]

DensePose

关于OpenCV图像处理篇

Python-OpenCV 处理图像(一):基本操作 【通道的拆分/合并,图像仿射变换等】

Python-OpenCV 处理图像(二):滤镜和图像运算


另外 在调实验的时候 注意到 Sampson Error/Sampson Distance 概念

你可能感兴趣的:(图像处理,3d,计算机视觉,深度学习)