[−][src]Struct pico_detect::Localizer
Implements object localization using decision trees.
Details available here.
Example
use std::fs::File; use image::{DynamicImage, Rgba}; use nalgebra::Point3; use pico_detect::{Localizer, create_xorshift_rng}; // load pupil localizer let fp = File::open("./models/puploc.bin").unwrap(); let puploc = Localizer::from_readable(fp).unwrap(); // load image let gray = match image::open("./assets/Lenna_grayscale_test.jpg").unwrap() { DynamicImage::ImageLuma8(image) => image, _ => panic!("image loading failed"), }; // initial parameters let mut rng = create_xorshift_rng(42u64); let init_point = Point3::new(270f32, 270f32, 40f32); let nperturbs = 31usize; // find pupil center let pupil_point = puploc.perturb_localize( &gray, &init_point, &mut rng, nperturbs ); // draw red cross on the image let mut palette = Vec::with_capacity(255); for i in 0..255 { palette.push((i, i, i)) } let mut image = gray.expand_palette(&palette, None); let x = pupil_point.x.round() as i32; let y = pupil_point.y.round() as i32; for i in -1..2 { for j in -1..2 { if i == 0 || j == 0 { image.put_pixel((x + i) as u32, (y + j) as u32, Rgba([255, 0, 0, 0])); } } } image.save("./result.jpg");
Implementations
impl Localizer[src]
pub fn localize(&self, image: &GrayImage, roi: &Point3<f32>) -> Point2<f32>[src]
Estimate object location on the image
Arguments
image- Target image.roi- Initial location to start:roi.xposition on image x-axis,roi.yposition on image y-axis,roi.zinitial window size to search.
pub fn perturb_localize(
&self,
image: &GrayImage,
roi: &Point3<f32>,
rng: impl RngCore,
nperturbs: usize
) -> Point2<f32>[src]
&self,
image: &GrayImage,
roi: &Point3<f32>,
rng: impl RngCore,
nperturbs: usize
) -> Point2<f32>
Estimate object location on the image with perturbation to increase accuracy.
Arguments
image- Target image.roi- Initial location to start:roi.xinitial position on image x-axis,roi.yinitial position on image y-axis,roi.zinitial window size (in pixels) to search.
rng- Source for randomness.nperturbs- How many perturbations to make.
pub fn from_readable(readable: impl Read) -> Result<Self, Error>[src]
Create localizer from a readable source.
Auto Trait Implementations
impl RefUnwindSafe for Localizer
impl Send for Localizer
impl Sync for Localizer
impl Unpin for Localizer
impl UnwindSafe for Localizer
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized, [src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized, [src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized, [src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T[src]
impl<T> From<T> for T[src]
impl<T, U> Into<U> for T where
U: From<T>, [src]
U: From<T>,
impl<T> Same<T> for T
type Output = T
Should always be Self
impl<T> SetParameter for T
fn set<T>(&mut self, value: T) -> <T as Parameter<Self>>::Result where
T: Parameter<Self>,
T: Parameter<Self>,
impl<SS, SP> SupersetOf<SS> for SP where
SS: SubsetOf<SP>,
SS: SubsetOf<SP>,
fn to_subset(&self) -> Option<SS>
fn is_in_subset(&self) -> bool
fn to_subset_unchecked(&self) -> SS
fn from_subset(element: &SS) -> SP
impl<T, U> TryFrom<U> 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, U> TryInto<U> for T where
U: TryFrom<T>, [src]
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error
The type returned in the event of a conversion error.
fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>[src]
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
V: MultiLane<T>,