14#include <mdspan/mdarray.hpp>
20namespace lagrange::image::experimental {
25template <
class T,
typename Extent,
typename Layout>
26using mdarray = MDSPAN_IMPL_STANDARD_NAMESPACE::Experimental::mdarray<T, Extent, Layout>;
29using Array3D = mdarray<
31 MDSPAN_IMPL_STANDARD_NAMESPACE::dextents<size_t, 3>,
32 MDSPAN_IMPL_STANDARD_NAMESPACE::layout_stride>;
46Array3D<T>
create_image(
size_t width,
size_t height,
size_t num_channels)
48 const MDSPAN_IMPL_STANDARD_NAMESPACE::dextents<size_t, 3> shape{width, height, num_channels};
49 const std::array<size_t, 3> strides{shape.extent(1) * shape.extent(2), shape.extent(2), 1};
50 const MDSPAN_IMPL_STANDARD_NAMESPACE::layout_stride::mapping mapping{shape, strides};
51 return Array3D<T>(mapping, std::vector<T>(width * height * num_channels));
Array3D< T > create_image(size_t width, size_t height, size_t num_channels)
Create an image with the given dimensions and number of channels.
Definition Array3D.h:46