非整数边容量的 NPP 图切割

NPP graph cut for non-integer edge capacities

nppiGraphcut_32s8u 函数适用于 32 位有符号整数边容量。在 CUDA 6.5 工具包中包含的 grabCut 示例中,他们只是将 Npp32f 转换为 Npp32s。例如,来自 grabcutNPP 示例文件夹中的 GrabcutUtil.cu

// Top/Bottom
Npp32s bottom;
bottom = _FIXED(edge_weight(center, tex2D(imageTex, x + 0.5f ,y + 1.5f), alpha, beta, 1.0f));

其中 edge_weight returns 一个 Npp32f。 他们是否扩大了数量,使边缘容量成为大值,从而避免舍入误差?

这不是 'cast'。 查看实现:_FIXED 首先将数字乘以 10,然后调用舍入例程。

所以是的,这个数字被放大了,尽管只有一位数。