use crate::{
context::StreamContext,
error::Result,
image::view::{ImageView, ImageViewMut},
};
pub use self::advanced::{
CrossCorrelationNormLevelAdvancedImage, CrossCorrelationNormLevelAdvancedToImage,
};
pub use self::norm_level::{
CrossCorrelationNormLevelImage, CrossCorrelationNormLevelScaledImage,
CrossCorrelationNormLevelToImage,
};
#[path = "template_cross_correlation_advanced_traits.rs"]
mod advanced;
#[path = "template_cross_correlation_norm_level_traits.rs"]
mod norm_level;
pub trait CrossCorrelationNormImage<T, L> {
fn full(
stream_context: &StreamContext,
source: &ImageView<'_, T, L>,
template: &ImageView<'_, T, L>,
destination: &mut ImageViewMut<'_, T, L>,
) -> Result<()>;
fn same(
stream_context: &StreamContext,
source: &ImageView<'_, T, L>,
template: &ImageView<'_, T, L>,
destination: &mut ImageViewMut<'_, T, L>,
) -> Result<()>;
fn valid(
stream_context: &StreamContext,
source: &ImageView<'_, T, L>,
template: &ImageView<'_, T, L>,
destination: &mut ImageViewMut<'_, T, L>,
) -> Result<()>;
}
pub trait CrossCorrelationNormToImage<T, D, L> {
fn full(
stream_context: &StreamContext,
source: &ImageView<'_, T, L>,
template: &ImageView<'_, T, L>,
destination: &mut ImageViewMut<'_, D, L>,
) -> Result<()>;
fn same(
stream_context: &StreamContext,
source: &ImageView<'_, T, L>,
template: &ImageView<'_, T, L>,
destination: &mut ImageViewMut<'_, D, L>,
) -> Result<()>;
fn valid(
stream_context: &StreamContext,
source: &ImageView<'_, T, L>,
template: &ImageView<'_, T, L>,
destination: &mut ImageViewMut<'_, D, L>,
) -> Result<()>;
}
pub trait CrossCorrelationNormScaledImage<T, L> {
fn full(
stream_context: &StreamContext,
source: &ImageView<'_, T, L>,
template: &ImageView<'_, T, L>,
destination: &mut ImageViewMut<'_, T, L>,
scale_factor: i32,
) -> Result<()>;
fn same(
stream_context: &StreamContext,
source: &ImageView<'_, T, L>,
template: &ImageView<'_, T, L>,
destination: &mut ImageViewMut<'_, T, L>,
scale_factor: i32,
) -> Result<()>;
fn valid(
stream_context: &StreamContext,
source: &ImageView<'_, T, L>,
template: &ImageView<'_, T, L>,
destination: &mut ImageViewMut<'_, T, L>,
scale_factor: i32,
) -> Result<()>;
}
pub trait CrossCorrelationImage<T, L> {
fn valid(
stream_context: &StreamContext,
source: &ImageView<'_, T, L>,
template: &ImageView<'_, T, L>,
destination: &mut ImageViewMut<'_, T, L>,
) -> Result<()>;
}
pub trait CrossCorrelationToImage<T, D, L> {
fn valid(
stream_context: &StreamContext,
source: &ImageView<'_, T, L>,
template: &ImageView<'_, T, L>,
destination: &mut ImageViewMut<'_, D, L>,
) -> Result<()>;
}