我想要执行需要相邻像素的图像处理操作,但我不确定如何从分配中访问它们。我见过的大多数内核都是在一个像素上进行操作,然后进行更新,然后将其返回。有没有办法可以在下面的方法中访问(x,y)的邻居。如何获取Renderscript中位图分配的相邻像素?
uchar4 __attribute__((kernel)) invert(uchar4 in, uint32_t x, uint32_t y) {
uchar4 neighbor = allocation[x+1][y]; // How do I do this in renderscript?
uchar4 otherNeighbor = allocation[x-1][y];
...
}
非常感谢!我能够这样访问邻居。 – WindsurferOak 2014-10-08 23:28:15
有一件事我没有在我的天真代码中做的是边界检查我的访问。如果直接运行该代码,您将尝试访问无效内存(对于任何有效的输入分配)。您应该根据内核的尺寸来限制(x-1)和(x + 1)部分。 – 2014-10-09 00:03:45
感谢您的提示!我已经设置了两个全局变量,maxWidth和maxHeight,并将检查这些变量。 – WindsurferOak 2014-10-09 00:06:38