当我尝试加载灰度图像png格式以执行此代码时出现错误。我的程序是Halide Tutorial第2课的一部分。这是我的代码:
#include <stdio.h>
#include "Halide.h"
#include "halide_image_io.h"
using namespace Halide;
using namespace Halide::Tools;
int main(int argc, char **argv) {
Halide::Image<uint8_t> input = load_image(argv[1]);
Halide::Func brighter;
Halide::Var x, y, c;
Halide::Expr value = input(x, y, c);
value = Halide::cast<float>(value);
value = value * 1.5f;
value = Halide::min(value, 255.0f);
value = Halide::cast<uint8_t>(value);
brighter(x, y, c) = value;
Halide::Image<uint8_t> output = brighter.realize(input.width(), input.height(), input.channels());
save_image(output, "brighter.png");
printf("Success!\n");
return 0;
}
这是错误消息:
错误:
3参数调用“i0”,它有2个维度。
中止(核心倾销)
答案 0 :(得分:0)
Halide将灰度图像视为二维数组,因此您可以像这样访问它们:
input(x, y)
不喜欢这样:
input(x, y, c)