nuscenes_data_opencv/
lib.rs1use nuscenes_data::{
2 dataset::{MapRef, SampleDataRef},
3 serializable::FileFormat,
4};
5use opencv::{
6 self as cv,
7 imgcodecs::{imread, IMREAD_COLOR},
8 prelude::*,
9};
10
11pub mod prelude {
12 pub use super::{MapRefImageExt, SampleDataRefImageExt};
13}
14
15pub trait MapRefImageExt {
16 fn load_opencv_mat(&self) -> cv::Result<Mat>;
17}
18
19impl MapRefImageExt for MapRef {
20 fn load_opencv_mat(&self) -> cv::Result<Mat> {
21 let path = format!("{}", self.path().display());
22 imread(&path, IMREAD_COLOR)
23 }
24}
25
26pub trait SampleDataRefImageExt {
27 fn load_opencv_mat(&self) -> cv::Result<Option<Mat>>;
28}
29
30impl SampleDataRefImageExt for SampleDataRef {
31 fn load_opencv_mat(&self) -> cv::Result<Option<Mat>> {
32 if self.fileformat != FileFormat::Jpg {
33 return Ok(None);
34 }
35
36 let path = format!("{}", self.path().display());
37 let mat = imread(&path, IMREAD_COLOR)?;
38 Ok(Some(mat))
39 }
40}