[][src]Struct ndarray_vision::core::image::Image

pub struct Image<T, C> where
    C: ColourModel
{ pub data: Array3<T>, // some fields omitted }

Basic structure containing an image.

Fields

data: Array3<T>

Images are always going to be 3D to handle rows, columns and colour channels

This should allow for max compatibility with maths ops in ndarray. Caution should be taken if performing any operations that change the number of channels in an image as this may cause other functionality to perform incorrectly. Use conversions to one of the Generic colour models instead.

Methods

impl<T, C> Image<T, C> where
    T: Copy + Clone + FromPrimitive + Num + NumCast + PixelBound,
    C: ColourModel
[src]

pub fn into_type<T2>(self) -> Image<T2, C> where
    T2: Copy + Clone + FromPrimitive + Num + NumCast + PixelBound
[src]

Converts image into a different type - doesn't scale to new pixel bounds

impl<T, C> Image<T, C> where
    T: Clone + Num,
    C: ColourModel
[src]

pub fn new(rows: usize, columns: usize) -> Self[src]

Construct a new image filled with zeros using the given dimensions and a colour model

pub fn from_shape_data(rows: usize, cols: usize, data: Vec<T>) -> Self[src]

Given the shape of the image and a data vector create an image. If the data sizes don't match a zero filled image will be returned instead of panicking

impl<T, C> Image<T, C> where
    C: ColourModel
[src]

pub fn from_data(data: Array3<T>) -> Self[src]

Construct the image from a given Array3

pub fn rows(&self) -> usize[src]

Returns the number of rows in an image

pub fn cols(&self) -> usize[src]

Returns the number of channels in an image

pub fn channels(&self) -> usize[src]

Convenience method to get number of channels

pub fn pixel(&self, row: usize, col: usize) -> ArrayView<T, Ix1>[src]

Get a view of all colour channels at a pixels location

pub fn pixel_mut(&mut self, row: usize, col: usize) -> ArrayViewMut<T, Ix1>[src]

Get a mutable view of a pixels colour channels given a location

Trait Implementations

impl<T, C> CannyEdgeDetectorExt<T> for Image<T, C> where
    T: Copy + Clone + FromPrimitive + Real + Num + NumAssignOps,
    C: ColourModel
[src]

type Output = Image<bool, C>

Output type, this is different as canny outputs a binary image

impl<T, C> ConvolutionExt for Image<T, C> where
    T: Copy + Clone + Num + NumAssignOps,
    C: ColourModel
[src]

type Data = T

Underlying data type to perform the colution on

impl<T, C> MedianFilterExt for Image<T, C> where
    T: Copy + Clone + FromPrimitive + ToPrimitive + Num + Ord,
    C: ColourModel
[src]

impl<T, C> SobelExt for Image<T, C> where
    T: Copy + Clone + Num + NumAssignOps + Neg<Output = T> + FromPrimitive + Real,
    C: ColourModel
[src]

type Output = Array3<T>

Type to output

impl<T, C> HistogramEqExt<T> for Image<T, C> where
    Image<T, C>: Clone,
    T: Copy + Clone + Ord + Num + NumAssignOps + ToPrimitive + FromPrimitive + PixelBound,
    C: ColourModel
[src]

impl<T: PartialEq, C: PartialEq> PartialEq<Image<T, C>> for Image<T, C> where
    C: ColourModel
[src]

impl<T> From<Image<T, RGB>> for Image<T, HSV> where
    T: Copy + Clone + FromPrimitive + Num + NumAssignOps + NumCast + PartialOrd + Display + PixelBound
[src]

impl<T> From<Image<T, HSV>> for Image<T, RGB> where
    T: Copy + Clone + FromPrimitive + Num + NumAssignOps + NumCast + PartialOrd + Display + PixelBound
[src]

impl<T> From<Image<T, RGB>> for Image<T, Gray> where
    T: Copy + Clone + FromPrimitive + Num + NumAssignOps + NumCast + PartialOrd + Display + PixelBound
[src]

impl<T> From<Image<T, Gray>> for Image<T, RGB> where
    T: Copy + Clone + FromPrimitive + Num + NumAssignOps + NumCast + PartialOrd + Display + PixelBound
[src]

impl<T> From<Image<T, RGB>> for Image<T, CIEXYZ> where
    T: Copy + Clone + FromPrimitive + Num + NumAssignOps + NumCast + PartialOrd + Display + PixelBound
[src]

impl<T> From<Image<T, CIEXYZ>> for Image<T, RGB> where
    T: Copy + Clone + FromPrimitive + Num + NumAssignOps + NumCast + PartialOrd + Display + PixelBound
[src]

impl<T> From<Image<T, Generic3>> for Image<T, RGB>[src]

impl<T> From<Image<T, Generic3>> for Image<T, HSV>[src]

impl<T> From<Image<T, Generic3>> for Image<T, HSI>[src]

impl<T> From<Image<T, Generic3>> for Image<T, HSL>[src]

impl<T> From<Image<T, Generic3>> for Image<T, YCrCb>[src]

impl<T> From<Image<T, Generic3>> for Image<T, CIEXYZ>[src]

impl<T> From<Image<T, Generic3>> for Image<T, CIELAB>[src]

impl<T> From<Image<T, Generic3>> for Image<T, CIELUV>[src]

impl<T> From<Image<T, Generic1>> for Image<T, Gray>[src]

impl<T> From<Image<T, Generic4>> for Image<T, RGBA>[src]

impl<T> From<Image<T, RGB>> for Image<T, Generic3>[src]

impl<T> From<Image<T, HSV>> for Image<T, Generic3>[src]

impl<T> From<Image<T, HSI>> for Image<T, Generic3>[src]

impl<T> From<Image<T, HSL>> for Image<T, Generic3>[src]

impl<T> From<Image<T, YCrCb>> for Image<T, Generic3>[src]

impl<T> From<Image<T, CIEXYZ>> for Image<T, Generic3>[src]

impl<T> From<Image<T, CIELAB>> for Image<T, Generic3>[src]

impl<T> From<Image<T, CIELUV>> for Image<T, Generic3>[src]

impl<T> From<Image<T, RGBA>> for Image<T, Generic4>[src]

impl<T> From<Image<T, Gray>> for Image<T, Generic1>[src]

impl<T> From<Image<T, Generic5>> for Image<T, Generic4> where
    T: Copy
[src]

impl<T> From<Image<T, Generic5>> for Image<T, Generic3> where
    T: Copy
[src]

impl<T> From<Image<T, Generic5>> for Image<T, Generic2> where
    T: Copy
[src]

impl<T> From<Image<T, Generic5>> for Image<T, Generic1> where
    T: Copy
[src]

impl<T> From<Image<T, Generic4>> for Image<T, Generic3> where
    T: Copy
[src]

impl<T> From<Image<T, Generic4>> for Image<T, Generic2> where
    T: Copy
[src]

impl<T> From<Image<T, Generic4>> for Image<T, Generic1> where
    T: Copy
[src]

impl<T> From<Image<T, Generic3>> for Image<T, Generic2> where
    T: Copy
[src]

impl<T> From<Image<T, Generic3>> for Image<T, Generic1> where
    T: Copy
[src]

impl<T> From<Image<T, Generic2>> for Image<T, Generic1> where
    T: Copy
[src]

impl<T> From<Image<T, Generic1>> for Image<T, Generic5> where
    T: Copy + Num
[src]

impl<T> From<Image<T, Generic2>> for Image<T, Generic5> where
    T: Copy + Num
[src]

impl<T> From<Image<T, Generic3>> for Image<T, Generic5> where
    T: Copy + Num
[src]

impl<T> From<Image<T, Generic4>> for Image<T, Generic5> where
    T: Copy + Num
[src]

impl<T> From<Image<T, Generic1>> for Image<T, Generic4> where
    T: Copy + Num
[src]

impl<T> From<Image<T, Generic2>> for Image<T, Generic4> where
    T: Copy + Num
[src]

impl<T> From<Image<T, Generic3>> for Image<T, Generic4> where
    T: Copy + Num
[src]

impl<T> From<Image<T, Generic1>> for Image<T, Generic3> where
    T: Copy + Num
[src]

impl<T> From<Image<T, Generic2>> for Image<T, Generic3> where
    T: Copy + Num
[src]

impl<T> From<Image<T, Generic1>> for Image<T, Generic2> where
    T: Copy + Num
[src]

impl<T: Clone, C: Clone> Clone for Image<T, C> where
    C: ColourModel
[src]

fn clone_from(&mut self, source: &Self)
1.0.0
[src]

Performs copy-assignment from source. Read more

impl<T: Eq, C: Eq> Eq for Image<T, C> where
    C: ColourModel
[src]

impl<T: Debug, C: Debug> Debug for Image<T, C> where
    C: ColourModel
[src]

impl<T: Hash, C: Hash> Hash for Image<T, C> where
    C: ColourModel
[src]

fn hash_slice<H>(data: &[Self], state: &mut H) where
    H: Hasher
1.3.0
[src]

Feeds a slice of this type into the given [Hasher]. Read more

Auto Trait Implementations

impl<T, C> Send for Image<T, C> where
    C: Send,
    T: Send

impl<T, C> Sync for Image<T, C> where
    C: Sync,
    T: Sync

Blanket Implementations

impl<T, U> Into for T where
    U: From<T>, 
[src]

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

impl<T> From for T[src]

impl<T, U> TryFrom for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T> Borrow for T where
    T: ?Sized
[src]

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> BorrowMut for T where
    T: ?Sized
[src]

impl<T, U> TryInto for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.