1 #include "purify/config.h"
3 #include "purify/directories.h"
11 int main(
int nargs,
char const **args) {
13 auto const input_name =
14 (nargs > 1) ?
static_cast<std::string
>(args[1]) :
image_filename(
"M31.fits");
15 auto const output_name =
16 (nargs > 2) ?
static_cast<std::string
>(args[2]) :
"wavelet_decomposition.fits";
17 #define ARGS_MACRO(NAME, ARGN, VALUE, TYPE) \
19 static_cast<TYPE>((nargs > ARGN) ? std::stod(static_cast<std::string>(args[ARGN])) : VALUE);
22 Image<t_complex>
const ground_truth_image =
pfitsio::read2d(input_name).cast<t_complex>();
24 const std::vector<std::tuple<std::string, t_uint>> wavelets{
25 std::make_tuple(
"Dirac", levels), std::make_tuple(
"DB1", levels),
26 std::make_tuple(
"DB2", levels), std::make_tuple(
"DB3", levels),
27 std::make_tuple(
"DB4", levels), std::make_tuple(
"DB5", levels),
28 std::make_tuple(
"DB6", levels), std::make_tuple(
"DB7", levels),
29 std::make_tuple(
"DB8", levels)};
31 const auto phi = factory::wavelet_operator_factory<Vector<t_complex>>(
33 ground_truth_image.cols());
34 const Image<t_complex> decompostion =
35 Image<t_complex>::Map((phi->adjoint() * Vector<t_complex>::Map(ground_truth_image.data(),
36 ground_truth_image.size()))
39 ground_truth_image.rows(), ground_truth_image.cols() * wavelets.size());
void set_level(const std::string &level)
Method to set the logging level of the default Log object.
void write2d(const Image< t_real > &eigen_image, const pfitsio::header_params &header, const bool &overwrite)
Write image to fits file.
Image< t_complex > read2d(const std::string &fits_name)
Read image from fits file.
std::string image_filename(std::string const &filename)
Image filename.
#define ARGS_MACRO(NAME, ARGN, VALUE, TYPE)
int main(int nargs, char const **args)