无法在卤化物中加载灰度图像

时间:2017-02-20 14:49:24

标签: halide

当我尝试加载灰度图像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个维度。

     

中止(核心倾销)

1 个答案:

答案 0 :(得分:0)

Halide将灰度图像视为二维数组,因此您可以像这样访问它们:

input(x, y)

不喜欢这样:

input(x, y, c)