有没有办法将两个输入图像堆叠到卤化物发生器中的单个 4 维缓冲区中?
Is there a way to stack two input images into a single 4 dimensional buffer in a Halide Generator?
我的生成器管道中有两个输入图像(rgb(。每个都经过自定义裁剪并调整为 NxNx3 图像的大小。发电机的输出Output<Buffer<float>> {"batch", 4}; // (N, N, 3 ,2)
和我设定
batch(x, y, c, batch_size) = cast<float>(0);
batch(x, y, c, 0) = image_1_resized(x, y, c);
batch(x, y, c, 1) = image_2_resized(x, y, c);
但是当我去编译它时,它会出现段错误(我无法检索有用的调试信息(。如果我尝试这个:
clamped_image_1 = BoundaryConditions(image_1_resized, 0 ,{{0, N}, {0, N});
batch(x, y, c, batch_size) = cast<float>(0);
batch(x, y, c, 0) = image_1_resized(x, y, c);
batch(x, y, c, 1) = clamped_image_1(x + 10, y, c);
它编译并且工作得很好。我很想知道,我想要用卤化物完成的事情是否可行?
与其将其作为多级功能执行,不如尝试使用 select 在单个阶段中填充不同的通道。
batch(x, y, c, n( = select(n==0, image_1_resized(x, y, c(, image_2_resized(x, y, c((;
然后你可以通过绑定和展开 N 来调度它,卤化物将删除分支:
batch.bound(n, 0, 2(.unroll(n(;
相关文章:
- 彩色图像的卤化物处理平均值
- 具有 GPU 时间表的卤化物产生黑色图像
- 卤化物:X86汇编代码生成
- 更快地将卤化物图像转换为 opencv 垫?
- 卤化物::GPU 上的缓冲区
- 有没有办法将两个输入图像堆叠到卤化物发生器中的单个 4 维缓冲区中?
- 定义一个带有缓冲区的函数作为卤化物中的边界框参数
- 卤化物:较大图像的去马赛克算法错误.似乎适用于 16x16 图像
- 如何使以下卤化物代码更加高效
- 如何让卤化物使用滑动窗口优化?
- 卤化物最佳计划
- 之一卤化物中的Cholesky分解
- 卤化物:将C 功能传递到卤化物弹性中
- 卤化物中的可变域还原
- 卤化物检查是否可以分开
- 如何使用卤化物轮廓仪
- 卤化物表达式:_pFirstBlock == pHead 在简单程序上崩溃
- 将卤化物与表示为浮点数组的 HDR 图像一起使用
- 更改卤化物输出缓冲器布局
- 卤化物 - 而回路等效