robotcar数据集提取(转换为彩色图像)

robotcar数据集提取(转换为彩色图像)

官网数据集如下所示在这里插入图片描述

下载sample_small数据集如下所示

在这里插入图片描述

储存的时候使用Bayer Pattern,所以在使用图片的时候需要将Bayer Pattern 变 RGB,并使用OpenCV保存。可以使用官方提供的工具包进行转换。

image.py文件
import re
from PIL import Image
from colour_demosaicing import demosaicing_CFA_Bayer_bilinear as demosaic
import numpy as np

BAYER_STEREO = 'gbrg'
BAYER_MONO = 'rggb'


def load_image(image_path, model=None, debayer=True):
    """Loads and rectifies an image from file.

    Args:
        image_path (str): path to an image from the dataset.
        model (camera_model.CameraModel): if supplied, model will be used to undistort image.

    Returns:
        numpy.ndarray: demosaiced and optionally undistorted image

    """
    if model:
        camera = model.camera
    else:
        camera = re.search('(stereo|mono_(left|right|rear))', image_path).group(0)
    if camera == 'stereo':
        pattern = BAYER_STEREO
    else:
        pattern = BAYER_MONO

    img = Image.open(image_path)
    if debayer:
        img = demosaic(img, pattern)
    if model:
        img = model.undistort(img)

    return np.array(img).astype(np.uint8)

play_images.py文件
import argparse
import os
import re
import matplotlib.pyplot as plt
from datetime import datetime as dt
from image import load_image
from camera_model import CameraModel
import cv2 as cv

parser = argparse.ArgumentParser(description='Play back images from a given directory')

parser.add_argument('--dir', type=str, default='C:\\Users\\52xj\\Downloads\\sample_small\\stereo\\centre\\',help='Directory containing images.')
# parser.add_argument('--dir', type=str, default='C:\\Users\\52xj\Downloads\\2015-05-29-09-36-29_stereo_left_07\\2015-05-29-09-36-29\\stereo\\left\\',help='Directory containing images.')

parser.add_argument('--models_dir', type=str, default="C:\\Users\\52xj\\Downloads\\Compressed\\robotcar-dataset-sdk-master\\robotcar-dataset-sdk-master\\models",help='(optional) Directory containing camera model. If supplied, images will be undistorted before display')
parser.add_argument('--scale', type=float, default=1.0, help='(optional) factor by which to scale images before display')

args = parser.parse_args()

camera = re.search('(stereo|mono_(left|right|rear))', args.dir).group(0)

timestamps_path = os.path.join(os.path.join(args.dir, os.pardir, camera + '.timestamps'))
if not os.path.isfile(timestamps_path):
  timestamps_path = os.path.join(args.dir, os.pardir, os.pardir, camera + '.timestamps')
  if not os.path.isfile(timestamps_path):
      raise IOError("Could not find timestamps file")

model = None
if args.models_dir:
    model = CameraModel(args.models_dir, args.dir)

current_chunk = 0
timestamps_file = open(timestamps_path)
for line in timestamps_file:
    tokens = line.split()
    datetime = dt.utcfromtimestamp(int(tokens[0])/1000000)
    chunk = int(tokens[1])

    filename = os.path.join(args.dir, tokens[0] + '.png')
    if not os.path.isfile(filename):
        if chunk != current_chunk:
            print("Chunk " + str(chunk) + " not found")
            current_chunk = chunk
        continue

    current_chunk = chunk

    # 保存转换后的彩色图片
    save_img_name = filename.split("\\")[-1]
    img = load_image(filename, model)
    img_rgb = cv.cvtColor(img, cv.COLOR_BGR2RGB)

    cv.imwrite("../result/"+save_img_name,img_rgb)

    plt.imshow(img)
    plt.show()

保存后的结果

在这里插入图片描述

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值