1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53
//! Detect various barcodes in pre-processed images //! //! (well, only QR so far) use crate::util::qr::QRLocation; /// Detect barcode in a prepared image /// /// PREPD type should be the type if the image returned from the [`Prepare`] implementation /// /// Pre-implemented Extracts provided by this library that are included in the default [`Detect`]: /// * [`LineScan`] /// /// # Example /// ``` /// # extern crate bardecoder; /// # extern crate image; /// # use bardecoder::detect::Location; /// # use image::GrayImage; /// use bardecoder::detect::Detect; /// /// struct MyDetector {} /// /// impl Detect<GrayImage> for MyDetector { /// fn detect(&self, prepared: &GrayImage) -> Vec<Location> { /// // detect codes here /// # vec![] /// } /// } /// ``` /// /// with the corresponding impl Detect being the Example [`here`] /// /// [`Location`]: ../detect/enum.Location.html /// [`Decode`]: ../decode/trait.Decode.html /// [`Decoder`]: ../struct.Decoder.html /// [`Prepare`]: ../prepare/trait.Prepare.html /// [`here`]: ../detect/trait.Detect.html pub trait Detect<PREPD> { /// Does the actual detecting fn detect(&self, prepared: &PREPD) -> Vec<Location>; } mod linescan; pub use self::linescan::LineScan; /// Location of a detected barcode #[derive(Debug)] pub enum Location { /// Location of a detected QR Code QR(QRLocation), }