4 #include <cppflow/cppflow.h>
5 #include "cppflow/ops.h"
6 #include "cppflow/model.h"
18 std::vector<int64_t> input_shape = {1, image_rows, image_cols, 1};
20 std::vector<float> input_values(image_rows*image_cols, 1);
21 for (
int i = 0; i < image.rows(); ++i) {
22 for (
int j = 0; j < image.cols(); ++j) {
23 input_values[j*image_cols+i] = image(i,j);
28 cppflow::tensor input_tensor(input_values, input_shape);
39 std::vector<int64_t> input_shape = {1, image_rows, image_cols, 1};
41 std::vector<float> input_values(image_rows*image_cols, 1);
43 for (
int i = 0; i < image.rows(); ++i) {
44 for (
int j = 0; j < image.cols(); ++j) {
47 throw std::runtime_error(
"Cannot convert to tensorflow format: imaginary component of image is non-negligible.");
49 input_values[j*image_cols+i] = image(i,j).real();
54 cppflow::tensor input_tensor(input_values, input_shape);
61 std::vector<float> input_values(&image[0], image.data()+image.size());
62 cppflow::tensor input_tensor(input_values, {1, image_rows, image_cols, 1});
71 std::vector<float> input_values(image_rows);
72 for(
int i = 0; i < image_rows; i++)
76 throw std::runtime_error(
"Cannot conver to tensorflow format: imaginary component of image vector is non negligible.");
78 input_values[i] = image(i).real();
80 cppflow::tensor input_tensor(input_values, {1, image_rows, image_cols, 1});
86 Eigen::Map<Eigen::Array<double, Eigen::Dynamic, Eigen::Dynamic>>
convert_tensor_to_image(std::vector<float> model_output,
int image_rows,
int image_cols){
89 std::vector<double> doubleResults(model_output.begin(), model_output.end());
90 Eigen::Map<Eigen::Array<double, Eigen::Dynamic, Eigen::Dynamic>> output_image(doubleResults.data(), image_rows, image_cols);
constexpr double imaginary_threshold
cppflow::tensor convert_image_to_tensor(Image< double > const &image, int image_rows, int image_cols)
Converts a sopt::Image to a cppflow::tensor.
Eigen::Map< Eigen::Array< double, Eigen::Dynamic, Eigen::Dynamic > > convert_tensor_to_image(std::vector< float > model_output, int image_rows, int image_cols)
Convert a cppflow:tensor to an Eigen::Array.
Eigen::Array< T, Eigen::Dynamic, Eigen::Dynamic > Image
A 2-dimensional list of elements of given type.
Eigen::Matrix< T, Eigen::Dynamic, 1 > Vector
A vector of a given type.