Cleaned up numpy_image code a little.

This commit is contained in:
Davis King 2018-05-31 21:59:14 -04:00
parent b6267d7e6f
commit d6b1f69b57
1 changed files with 7 additions and 24 deletions

View File

@ -148,26 +148,17 @@ namespace dlib
numpy_image ( numpy_image (
const py::object& img const py::object& img
) ) : numpy_image(img.cast<py::array>()) {}
{
py::array_t<typename pixel_traits<pixel_type>::basic_pixel_type, py::array::c_style> arr = img.cast<py::array>();
assert_is_image<pixel_type>(arr);
py::array_t<typename pixel_traits<pixel_type>::basic_pixel_type, py::array::c_style>::operator=(arr);
}
numpy_image( numpy_image(
const numpy_image& img const numpy_image& img
) : py::array_t<typename pixel_traits<pixel_type>::basic_pixel_type, py::array::c_style>(img) ) = default;
{
}
numpy_image& operator= ( numpy_image& operator= (
const py::object& rhs const py::object& rhs
) )
{ {
py::array arr = rhs.cast<py::array>(); *this = numpy_image(rhs);
assert_is_image<pixel_type>(arr);
py::array_t<typename pixel_traits<pixel_type>::basic_pixel_type, py::array::c_style>::operator=(arr);
return *this; return *this;
} }
@ -175,33 +166,25 @@ namespace dlib
const py::array_t<typename pixel_traits<pixel_type>::basic_pixel_type, py::array::c_style>& rhs const py::array_t<typename pixel_traits<pixel_type>::basic_pixel_type, py::array::c_style>& rhs
) )
{ {
assert_is_image<pixel_type>(rhs); *this = numpy_image(rhs);
py::array_t<typename pixel_traits<pixel_type>::basic_pixel_type, py::array::c_style>::operator=(rhs);
return *this; return *this;
} }
numpy_image& operator= ( numpy_image& operator= (
const numpy_image& rhs const numpy_image& rhs
) ) = default;
{
py::array_t<typename pixel_traits<pixel_type>::basic_pixel_type, py::array::c_style>::operator=(rhs);
return *this;
}
template <long NR, long NC> template <long NR, long NC>
numpy_image ( numpy_image (
matrix<pixel_type,NR,NC>&& rhs matrix<pixel_type,NR,NC>&& rhs
) ) : numpy_image(convert_to_numpy(std::move(rhs))) {}
{
*this = convert_to_numpy(std::move(rhs));
}
template <long NR, long NC> template <long NR, long NC>
numpy_image& operator= ( numpy_image& operator= (
matrix<pixel_type,NR,NC>&& rhs matrix<pixel_type,NR,NC>&& rhs
) )
{ {
*this = convert_to_numpy(std::move(rhs)); *this = numpy_image(rhs);
return *this; return *this;
} }