PFM格式图像和读取middlebury 数据集

本文介绍了PFM格式图像,包括其文件结构和内容,特别强调了在处理图像时如何根据header确定字节顺序。接着详细讲解了Middlebury 2014数据集,特别是如何从数据集中的视差图生成深度图,涉及到了深度图的计算方法和注意事项。
摘要由CSDN通过智能技术生成

PFM格式图像

http://www.pauldebevec.com/Research/HDR/PFM/
https://linux.die.net/man/5/pfm
PFM (Portable Float Map),是一种浮点像素的图像格式,包含文件信息和文件二进制数据两部分内容。

图像格式

PFM中的文件信息称为header,二进制图像数据称为raster。

header 文件信息:
共有三行信息,并且以Unix风格的换行符“\n”的十六进制“0x0a”结尾。

  • Identifier Line
    值为“PF”或者“Pf”。
    • “PF”,说明是RGB三通道图像
    • “Pf”,说明是单通道图像
  • Dimensions Line
    此行是图像的行列信息(不包含通道),中间以空格隔开
  • Scale Factor / Endianness
    缩放因子/字节顺序,该行写入的信息是全局浮点数缩放因子值,有正负之分。
    如果是正值,说明图像的二进制数据是以大端序列存储,负值则为小端序列存储(不存在0值)。
    只有获取depth map时才用到这个scale factor,需要disparity map的值除以这个scale factor。

raster图像数据区:
图像中每个像素值有4个字节,RGB通道则是以12个字节顺序存储,图像的像素点读取顺序按照由下到上从左至右的顺序进行读取。

Middlebury 2014数据集

http://vision.middlebury.edu/stereo/data/scenes2014/#description

数据集介绍

Alt

读取Middlebury数据集中视差图生成depth map

from pathlib import Path
import numpy as np
import csv
import re
import cv2

def read_calib(calib_file_path):
    with open(calib_file_path, 'r') as calib_file:
        calib = {
   }
        csv_reader = csv.reader(calib_file, delimiter='=')
        for attr, value in csv_reader:
            calib.setdef
  • 7
    点赞
  • 62
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值