У меня есть вопрос об обертывании объекта Halide::Image вокруг уже выделенного массива C++, который определяет двумерное изображение с плавающей запятой двойной точности.
Я уже посмотрел:
массив C++ в образ Halide (и обратно)
Это близко к тому, что я хочу сделать, но меня смущает тип uint8_t хост-члена buffer_t в halide и то, как вы работаете с существующими изображениями, которые не являются uint8_t.
Я вижу, что в приложении размытия, которое использует aot, пример выделяет галоидное изображение, а затем копирует элементы в это галоидное изображение. Я хотел бы сделать это, но без оплаты за копию.
Я не могу использовать load_image, мне нужно работать с существующей, уже выделенной памятью, определенной двойным *.
Image<uint16_t> input(6408, 4802);
for (int y = 0; y < input.height(); y++) {
for (int x = 0; x < input.width(); x++) {
input(x, y) = rand() & 0xfff;
}
}