1

当我尝试加载灰度图像 png 格式以执行此代码时出现错误。我的程序是卤化物教程第 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;
    }

这是错误消息:

错误:

对“i0”的 3 参数调用,它有 2 个维度。

中止(核心转储)

4

1 回答 1

1

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

input(x, y)

不是这样的:

input(x, y, c)
于 2017-02-20T17:54:09.440 回答