use crate::DType;
use numr::error::Result;
use numr::runtime::Runtime;
use numr::tensor::Tensor;
pub trait EdgeDetectionAlgorithms<R: Runtime<DType = DType>> {
fn sobel(&self, input: &Tensor<R>, axis: usize) -> Result<Tensor<R>>;
fn prewitt(&self, input: &Tensor<R>, axis: usize) -> Result<Tensor<R>>;
fn laplace(&self, input: &Tensor<R>) -> Result<Tensor<R>>;
fn gaussian_laplace(&self, input: &Tensor<R>, sigma: f64) -> Result<Tensor<R>>;
fn gaussian_gradient_magnitude(&self, input: &Tensor<R>, sigma: f64) -> Result<Tensor<R>>;
}