pub struct RawImage {Show 16 fields
pub make: String,
pub model: String,
pub clean_make: String,
pub clean_model: String,
pub width: usize,
pub height: usize,
pub cpp: usize,
pub wb_coeffs: [f32; 4],
pub whitelevels: [u16; 4],
pub blacklevels: [u16; 4],
pub xyz_to_cam: [[f32; 3]; 4],
pub cfa: CFA,
pub crops: [usize; 4],
pub blackareas: Vec<(u64, u64, u64, u64)>,
pub orientation: Orientation,
pub data: RawImageData,
}
Expand description
All the data needed to process this raw image, including the image data itself as well as all the needed metadata
Fields
make: String
camera make as encoded in the file
model: String
camera model as encoded in the file
clean_make: String
make cleaned up to be consistent and short
clean_model: String
model cleaned up to be consistent and short
width: usize
width of the full image
height: usize
height of the full image
cpp: usize
number of components per pixel (1 for bayer, 3 for RGB images)
wb_coeffs: [f32; 4]
whitebalance coefficients encoded in the file in RGBE order
whitelevels: [u16; 4]
image whitelevels in RGBE order
blacklevels: [u16; 4]
image blacklevels in RGBE order
xyz_to_cam: [[f32; 3]; 4]
matrix to convert XYZ to camera RGBE
cfa: CFA
color filter array
crops: [usize; 4]
how much to crop the image to get all the usable area, order is top, right, bottom, left
blackareas: Vec<(u64, u64, u64, u64)>
Areas of the sensor that is masked to prevent it from receiving light. Used to calculate black levels and noise. Each tuple represents a masked rectangle’s top, right, bottom, left
orientation: Orientation
orientation of the image as indicated by the image metadata
data: RawImageData
image data itself, has width
*height
*cpp
elements
Implementations
sourceimpl RawImage
impl RawImage
sourcepub fn cam_to_xyz(&self) -> [[f32; 4]; 3]
pub fn cam_to_xyz(&self) -> [[f32; 4]; 3]
Outputs the inverted matrix that converts pixels in the camera colorspace into XYZ components.
sourcepub fn cam_to_xyz_normalized(&self) -> [[f32; 4]; 3]
pub fn cam_to_xyz_normalized(&self) -> [[f32; 4]; 3]
Outputs the inverted matrix that converts pixels in the camera colorspace into XYZ components normalized to be easily used to convert to Lab or a RGB output space
sourcepub fn neutralwb(&self) -> [f32; 4]
pub fn neutralwb(&self) -> [f32; 4]
Not all cameras encode a whitebalance so in those cases just using a 6500K neutral one is a good compromise
sourcepub fn normalized_pseudoinverse(inm: [[f32; 3]; 4]) -> [[f32; 4]; 3]
pub fn normalized_pseudoinverse(inm: [[f32; 3]; 4]) -> [[f32; 4]; 3]
Normalize matrix so that inm * (1,1,1) is (1,1,1,1) and then invert
sourcepub fn pseudoinverse(inm: [[f32; 3]; 4]) -> [[f32; 4]; 3]
pub fn pseudoinverse(inm: [[f32; 3]; 4]) -> [[f32; 4]; 3]
Matrix inversion that deals with 4x3 matrices
sourcepub fn cropped_cfa(&self) -> CFA
pub fn cropped_cfa(&self) -> CFA
Returns the CFA pattern after the crop has been applied (and thus the pattern potentially shifted)
sourcepub fn is_monochrome(&self) -> bool
pub fn is_monochrome(&self) -> bool
Checks if the image is monochrome
Trait Implementations
Auto Trait Implementations
impl RefUnwindSafe for RawImage
impl Send for RawImage
impl Sync for RawImage
impl Unpin for RawImage
impl UnwindSafe for RawImage
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
impl<T> Pointable for T
impl<T> Pointable for T
sourceimpl<T> ToOwned for T where
T: Clone,
impl<T> ToOwned for T where
T: Clone,
type Owned = T
type Owned = T
The resulting type after obtaining ownership.
sourcefn clone_into(&self, target: &mut T)
fn clone_into(&self, target: &mut T)
toowned_clone_into
)Uses borrowed data to replace owned data, usually by cloning. Read more