use image::GenericImageView;
use nuscenes_data::{error::NuScenesDataResult, LoadedSampleData, NuScenesDataset};
fn main() -> NuScenesDataResult<()> {
let dataset = NuScenesDataset::load("1.02", "/some/path/v1.02-train")?;
for scene in dataset.scene_iter() {
println!("read scene {}", scene.token);
let log = scene.log();
println!("captured at {}", log.date_captured);
for sample in scene.sample_iter() {
println!(
"found sample {} in scene {} with timestamp {}",
sample.token, scene.token, sample.timestamp
);
assert_eq!(scene.token, sample.scene_token);
assert_eq!(scene.token, sample.scene().token);
for annotation in sample.sample_annotation_iter() {
println!(
"found annotation {} in sample {}",
annotation.token, sample.token,
);
}
for data in sample.sample_data_iter() {
println!("found data {} in sample {}", data.token, sample.token);
match data.load()? {
LoadedSampleData::PointCloud(matrix) => {
println!(
"get point cloud from data {} with {} points",
data.token,
matrix.nrows()
);
}
LoadedSampleData::Image(image) => {
println!(
"get image from data {} with shape {}x{}",
data.token,
image.width(),
image.height()
);
}
}
}
}
}
Ok(())
}