#pragma once

#include "../../../include/dv-processing/imgproc/imgproc.hpp"

#include <pybind11/pybind11.h>

namespace py = pybind11;

/**
 * @brief Bind imgproc functions to python
 * @param m pybind The module to bind to
 */
void bind_imgproc(py::module &m) {
	m.def(
		"L1distance",
		[](const cv::Mat &i1, const cv::Mat &i2) {
			return dv::imgproc::L1Distance(i1, i2);
		},
		py::arg("image1"), py::arg("image1"), "Computes the L1 distance between two matrices");
	m.def(
		"pearsonCorrelation",
		[](const cv::Mat &i1, const cv::Mat &i2) {
			return dv::imgproc::pearsonCorrelation(i1, i2);
		},
		py::arg("image1"), py::arg("image1"), "Computes the Pearson Correlation between two matrices");
	m.def(
		"cosineDistance",
		[](const cv::Mat &i1, const cv::Mat &i2) {
			return dv::imgproc::cosineDistance(i1, i2);
		},
		py::arg("image1"), py::arg("image1"), "Computes the Cosine Distance between two matrices");
}
