Kann ein Func von einem Array in einer Generatorklasse initialisiert werden? Der Code sollte so aussehen.Func von einem Array initialisieren
class SobelConv: public Halide::Generator<SobelConv> {
const signed char kernelx[3][3] = {
{-1, 0, 1},
{-2, 0, 2},
{-1, 0, 1}
};
void generate() {
for (int y = 0; y < 3; y++)
for (int x = 0; x < 3; x++)
kernel_x(x, y) = kernelx[y][x];
conv_x(x, y) += gray(x+win.x, y+win.y) * kernel_x(win.x + 1, win.y + 1);
}
Func kernel_x{"kernel_x"};
Derzeit ist die Art, wie ich tat, ist Input<Buffer<int8_t>> kernel_x
zu definieren. Ich möchte nicht, dass es ein Argument der Pipeline-Funktion ist, und möchte, dass kernel_x direkt durch die entsprechenden Zahlen ersetzt wird.
Wenn Sie ein statisches Array haben, 'Halide :: Runtime :: Buffer' kann mit dem Array initialisiert werden:' kernel_x {Gewichte} '. Die Dimensionalität und Ausmaße werden erkannt. –