blob: 9e0f4806e894894abc7dd03e1798bae186daca0d [file] [log] [blame]
#include "../common/benchmark.h"
#include "../common/halide_image.h"
#include "../common/halide_image_io.h"
#include "local_laplacian.h"
using namespace Halide::Tools;
int main(int argc, char **argv) {
if (argc < 7) {
printf("Usage: ./process input.png levels alpha beta timing_iterations output.png\n"
"e.g.: ./process input.png 8 1 1 10 output.png\n");
return 0;
}
Image<uint16_t> input = load_image(argv[1]);
int levels = atoi(argv[2]);
float alpha = atof(argv[3]), beta = atof(argv[4]);
Image<uint16_t> output(input.width(), input.height(), 3);
int timing = atoi(argv[5]);
local_laplacian(levels, alpha/(levels-1), beta, input, output);
// Timing code
double best = benchmark(timing, 1, [&]() {
local_laplacian(levels, alpha/(levels-1), beta, input, output);
});
printf("%gus\n", best * 1e6);
save_image(output, argv[6]);
return 0;
}