Skip to content

Extract UBO2003 and UBO2014 format in python.

License

Notifications You must be signed in to change notification settings

2-propanol/BTF_extractor

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

41 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

BTF Extractor

PyPI version GitHub version Python Versions Code style: black

Extract UBO BTF archive format(UBO2003, ATRIUM, UBO2014).

This repository uses zeroeffects/btf's btf.hh (MIT License).

Extract to ndarray compatible with openCV(BGR, channels-last).

Install

pip install btf-extractor

This package uses the Cython. To install this package, a C and OpenMP build environment is required.

Build is tested on

Example

>>> from btf_extractor import Ubo2003, AtriumHdr, Ubo2014

>>> btf = Ubo2003("UBO_CORDUROY256.zip")
>>> angles_list = list(btf.angles_set)
>>> print(angles_list[0])
(0, 0, 0, 0)
>>> image = btf.angles_to_image(*angles_list[0])
>>> print(image.shape)
(256, 256, 3)
>>> print(image.dtype)
uint8

>>> btf = AtriumHdr("CEILING_HDR.zip")
>>> angles_list = list(btf.angles_set)
>>> print(angles_list[0])
(0, 0, 0, 0)
>>> image = btf.angles_to_image(*angles_list[0])
>>> print(image.shape)
(256, 256, 3)
>>> print(image.dtype)
float32

>>> btf = Ubo2014("carpet01_resampled_W400xH400_L151xV151.btf")
>>> print(btf.img_shape)
(400, 400, 3)
>>> angles_list = list(btf.angles_set)
>>> print(angles_list[0])
(60.0, 270.0, 60.0, 135.0)
>>> image = btf.angles_to_image(*angles_list[0])
>>> print(image.shape)
(400, 400, 3)
>>> print(image.dtype)
float32

Supported Datasets

UBO2003

6561 images, 256x256 resolution, 81 view and 81 light directions.

ubo2003

Mirko Sattler, Ralf Sarlette and Reinhard Klein "Efficient and Realistic Visualization of Cloth", EGSR 2003.

ATRIUM (non-HDR and HDR)

6561 images, 800x800 resolution, 81 view and 81 light directions.

atrium

UBO2014

22,801 images, 512x512(400x400) resolution, 151 view and 151 light directions.

ubo2014

Michael Weinmann, Juergen Gall and Reinhard Klein. "Material Classification based on Training Data Synthesized Using a BTF Database", accepted at ECCV 2014.