Skip to main content

RadonDetector

Struct RadonDetector 

Source
pub struct RadonDetector;
Expand description

Zero-sized DenseDetector implementor for the whole-image Duda-Frese Radon kernel.

Wraps crate::detect::radon::radon_response_u8 (SAT-based dense response) and crate::detect::radon::detect_peaks_from_radon (threshold, NMS, 3-point Gaussian peak-fit on the working-resolution map). Output Corner positions are in the input-image frame: the Radon peak detector divides by image_upsample internally.

Trait Implementations§

Source§

impl Clone for RadonDetector

Source§

fn clone(&self) -> RadonDetector

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for RadonDetector

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for RadonDetector

Source§

fn default() -> RadonDetector

Returns the “default value” for a type. Read more
Source§

impl DenseDetector for RadonDetector

Source§

type Params = RadonDetectorParams

Detector-specific tuning parameters.
Source§

type Buffers = RadonBuffers

Reusable scratch buffers. Allocated once via Default::default and reused across compute_response calls to avoid per-frame allocation.
Source§

type Response<'a> = RadonResponseView<'a>

Native response representation. May be owned (a borrow of an owned ResponseMap in Self::Buffers) or a transient view (RadonResponseView) over the same scratch. The borrow lifetime ties the response back to the buffers that produced it.
Source§

fn compute_response<'a>( &self, view: ImageView<'_>, params: &Self::Params, buffers: &'a mut Self::Buffers, ) -> Self::Response<'a>

Compute the dense response over view, writing into buffers and returning a borrowed handle.
Source§

fn detect_corners( &self, response: &Self::Response<'_>, params: &Self::Params, _refine_border: i32, ) -> Vec<Corner>

Extract corner peaks from response. Positions are in the input-image frame (the same frame view was passed in at Self::compute_response). Read more
Source§

fn compute_response_patch<'a>( &self, base: ImageView<'_>, roi: (i32, i32, i32, i32), params: &Self::Params, buffers: &'a mut Self::Buffers, ) -> Self::Response<'a>

Compute the dense response over the sub-rectangle [x0..x1) × [y0..y1) of base, where the ROI is given as the tuple (x0, y0, x1, y1). The returned response is sized to the ROI; any Corner positions produced from it by Self::detect_corners are patch-local (origin = ROI’s top-left), and the caller is responsible for shifting them back into base-image coordinates by adding (x0, y0). Read more
Source§

fn roi_border(&self, params: &Self::Params) -> i32

Detector-specific safety border (in base-image pixels) the orchestrator must keep around each seed when carving an ROI. Typically the sum of the detector’s response-support radius (e.g. ChESS ring radius, Radon ray radius) and its NMS half-window — i.e. the minimum margin needed for Self::compute_response_patch + Self::detect_corners to return a non-trivial peak inside the ROI.
Source§

fn refine_peaks_on_image( &self, corners: Vec<Corner>, _image: ImageView<'_>, _response: &Self::Response<'_>, _refiner: &mut dyn CornerRefiner, ) -> Vec<Corner>

Apply a detector-appropriate image-domain refinement step to the peaks produced by Self::detect_corners. Read more
Source§

fn refines_on_image(&self) -> bool

Whether Self::refine_peaks_on_image actually consumes the orchestrator-supplied refiner. When false, the orchestrator must not include the refiner’s patch radius in the per-seed ROI margin — otherwise a no-op refiner choice would still shrink the valid seed area near the image border (a tunable silently coupling to an unused setting). Read more
Source§

impl Copy for RadonDetector

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
§

impl<T> Pointable for T

§

const ALIGN: usize

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

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

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<T> WithSubscriber for T

§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a [WithDispatch] wrapper. Read more