22 #include "purify/config.h"
29 template <
class T = t_real>
30 using CImage = cimg_library::CImg<T>;
31 template <
class T = t_real>
32 using CImageList = cimg_library::CImgList<T>;
34 typedef cimg_library::CImgDisplay CDisplay;
40 CImage<typename T::Scalar> make_image(
const Eigen::DenseBase<T> &x,
const t_uint &rows,
44 CImage<typename T::Scalar> make_image(
const Eigen::DenseBase<T> &x);
47 CDisplay make_display(
const Eigen::DenseBase<T> &x,
const t_uint &rows,
const t_uint &cols,
48 const std::string &name =
"");
51 CDisplay make_display(
const Eigen::DenseBase<T> &x,
const std::string &name =
"");
60 CImage<typename T::Scalar> make_image(
const Eigen::DenseBase<T> &x,
const t_uint &rows,
62 assert(x.size() == rows * cols);
63 auto image = CImage<typename T::Scalar>(rows, cols, 1, 1);
64 Vector<typename T::Scalar>::Map(image.data(), x.size()) =
65 Vector<typename T::Scalar>::Map(x.derived().data(), x.size());
69 CImage<typename T::Scalar> make_image(
const Eigen::DenseBase<T> &x) {
70 return make_image<typename T::PlainObject>(x, x.rows(), x.cols());
73 CDisplay make_display(
const Eigen::DenseBase<T> &x,
const t_uint &rows,
const t_uint &cols,
74 const std::string &name) {
75 return CDisplay(cimg::make_image<typename T::PlainObject>(x.eval(), rows, cols), name.c_str());
79 CDisplay make_display(
const Eigen::DenseBase<T> &x,
const std::string &name) {
80 return make_display<typename T::PlainObject>(x.eval(), x.rows(), x.cols(), name);