[−][src]Struct ndarray_vision::core::image::Image
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]
T: Copy + Clone + FromPrimitive + Num + NumCast + PixelBound,
C: ColourModel,
pub fn into_type<T2>(self) -> Image<T2, C> where
T2: Copy + Clone + FromPrimitive + Num + NumCast + PixelBound,
[src]
T2: Copy + Clone + FromPrimitive + Num + NumCast + PixelBound,
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]
T: Clone + Num,
C: ColourModel,
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]
C: ColourModel,
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]
T: Copy + Clone + FromPrimitive + Real + Num + NumAssignOps,
C: ColourModel,
type Output = Image<bool, C>
Output type, this is different as canny outputs a binary image
fn canny_edge_detector(
&self,
params: CannyParameters<T>
) -> Result<Self::Output, Error>
[src]
&self,
params: CannyParameters<T>
) -> Result<Self::Output, Error>
impl<T, C> ConvolutionExt for Image<T, C> where
T: Copy + Clone + Num + NumAssignOps,
C: ColourModel,
[src]
T: Copy + Clone + Num + NumAssignOps,
C: ColourModel,
type Data = T
Underlying data type to perform the colution on
fn conv2d(&self, kernel: ArrayView3<Self::Data>) -> Result<Self, Error>
[src]
fn conv2d_inplace(
&mut self,
kernel: ArrayView3<Self::Data>
) -> Result<(), Error>
[src]
&mut self,
kernel: ArrayView3<Self::Data>
) -> Result<(), Error>
impl<T, C> MedianFilterExt for Image<T, C> where
T: Copy + Clone + FromPrimitive + ToPrimitive + Num + Ord,
C: ColourModel,
[src]
T: Copy + Clone + FromPrimitive + ToPrimitive + Num + Ord,
C: ColourModel,
fn median_filter<E>(&self, region: E) -> Self where
E: IntoDimension<Dim = Ix2>,
[src]
E: IntoDimension<Dim = Ix2>,
impl<T, C> SobelExt for Image<T, C> where
T: Copy + Clone + Num + NumAssignOps + Neg<Output = T> + FromPrimitive + Real,
C: ColourModel,
[src]
T: Copy + Clone + Num + NumAssignOps + Neg<Output = T> + FromPrimitive + Real,
C: ColourModel,
type Output = Array3<T>
Type to output
fn apply_sobel(&self) -> Result<Self, Error>
[src]
fn full_sobel(&self) -> Result<(Self::Output, Self::Output), Error>
[src]
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]
Image<T, C>: Clone,
T: Copy + Clone + Ord + Num + NumAssignOps + ToPrimitive + FromPrimitive + PixelBound,
C: ColourModel,
fn equalise_hist(&self, grid: Grid<T>) -> Self
[src]
fn equalise_hist_inplace(&mut self, grid: Grid<T>)
[src]
impl<T: PartialEq, C: PartialEq> PartialEq<Image<T, C>> for Image<T, C> where
C: ColourModel,
[src]
C: ColourModel,
impl<T> From<Image<T, RGB>> for Image<T, HSV> where
T: Copy + Clone + FromPrimitive + Num + NumAssignOps + NumCast + PartialOrd + Display + PixelBound,
[src]
T: Copy + Clone + FromPrimitive + Num + NumAssignOps + NumCast + PartialOrd + Display + PixelBound,
impl<T> From<Image<T, HSV>> for Image<T, RGB> where
T: Copy + Clone + FromPrimitive + Num + NumAssignOps + NumCast + PartialOrd + Display + PixelBound,
[src]
T: Copy + Clone + FromPrimitive + Num + NumAssignOps + NumCast + PartialOrd + Display + PixelBound,
impl<T> From<Image<T, RGB>> for Image<T, Gray> where
T: Copy + Clone + FromPrimitive + Num + NumAssignOps + NumCast + PartialOrd + Display + PixelBound,
[src]
T: Copy + Clone + FromPrimitive + Num + NumAssignOps + NumCast + PartialOrd + Display + PixelBound,
impl<T> From<Image<T, Gray>> for Image<T, RGB> where
T: Copy + Clone + FromPrimitive + Num + NumAssignOps + NumCast + PartialOrd + Display + PixelBound,
[src]
T: Copy + Clone + FromPrimitive + Num + NumAssignOps + NumCast + PartialOrd + Display + PixelBound,
impl<T> From<Image<T, RGB>> for Image<T, CIEXYZ> where
T: Copy + Clone + FromPrimitive + Num + NumAssignOps + NumCast + PartialOrd + Display + PixelBound,
[src]
T: Copy + Clone + FromPrimitive + Num + NumAssignOps + NumCast + PartialOrd + Display + PixelBound,
impl<T> From<Image<T, CIEXYZ>> for Image<T, RGB> where
T: Copy + Clone + FromPrimitive + Num + NumAssignOps + NumCast + PartialOrd + Display + PixelBound,
[src]
T: Copy + Clone + FromPrimitive + Num + NumAssignOps + NumCast + PartialOrd + Display + PixelBound,
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]
T: Copy,
impl<T> From<Image<T, Generic5>> for Image<T, Generic3> where
T: Copy,
[src]
T: Copy,
impl<T> From<Image<T, Generic5>> for Image<T, Generic2> where
T: Copy,
[src]
T: Copy,
impl<T> From<Image<T, Generic5>> for Image<T, Generic1> where
T: Copy,
[src]
T: Copy,
impl<T> From<Image<T, Generic4>> for Image<T, Generic3> where
T: Copy,
[src]
T: Copy,
impl<T> From<Image<T, Generic4>> for Image<T, Generic2> where
T: Copy,
[src]
T: Copy,
impl<T> From<Image<T, Generic4>> for Image<T, Generic1> where
T: Copy,
[src]
T: Copy,
impl<T> From<Image<T, Generic3>> for Image<T, Generic2> where
T: Copy,
[src]
T: Copy,
impl<T> From<Image<T, Generic3>> for Image<T, Generic1> where
T: Copy,
[src]
T: Copy,
impl<T> From<Image<T, Generic2>> for Image<T, Generic1> where
T: Copy,
[src]
T: Copy,
impl<T> From<Image<T, Generic1>> for Image<T, Generic5> where
T: Copy + Num,
[src]
T: Copy + Num,
impl<T> From<Image<T, Generic2>> for Image<T, Generic5> where
T: Copy + Num,
[src]
T: Copy + Num,
impl<T> From<Image<T, Generic3>> for Image<T, Generic5> where
T: Copy + Num,
[src]
T: Copy + Num,
impl<T> From<Image<T, Generic4>> for Image<T, Generic5> where
T: Copy + Num,
[src]
T: Copy + Num,
impl<T> From<Image<T, Generic1>> for Image<T, Generic4> where
T: Copy + Num,
[src]
T: Copy + Num,
impl<T> From<Image<T, Generic2>> for Image<T, Generic4> where
T: Copy + Num,
[src]
T: Copy + Num,
impl<T> From<Image<T, Generic3>> for Image<T, Generic4> where
T: Copy + Num,
[src]
T: Copy + Num,
impl<T> From<Image<T, Generic1>> for Image<T, Generic3> where
T: Copy + Num,
[src]
T: Copy + Num,
impl<T> From<Image<T, Generic2>> for Image<T, Generic3> where
T: Copy + Num,
[src]
T: Copy + Num,
impl<T> From<Image<T, Generic1>> for Image<T, Generic2> where
T: Copy + Num,
[src]
T: Copy + Num,
impl<T: Clone, C: Clone> Clone for Image<T, C> where
C: ColourModel,
[src]
C: ColourModel,
fn clone(&self) -> Image<T, C>
[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]
C: ColourModel,
impl<T: Debug, C: Debug> Debug for Image<T, C> where
C: ColourModel,
[src]
C: ColourModel,
impl<T: Hash, C: Hash> Hash for Image<T, C> where
C: ColourModel,
[src]
C: ColourModel,
Auto Trait Implementations
impl<T, C> Send for Image<T, C> where
C: Send,
T: Send,
C: Send,
T: Send,
impl<T, C> Sync for Image<T, C> where
C: Sync,
T: Sync,
C: Sync,
T: Sync,
Blanket Implementations
impl<T, U> Into for T where
U: From<T>,
[src]
U: From<T>,
impl<T> ToOwned for T where
T: Clone,
[src]
T: Clone,
impl<T> From for T
[src]
impl<T, U> TryFrom for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T> Borrow for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> BorrowMut for T where
T: ?Sized,
[src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
[src]
impl<T, U> TryInto for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,