我正在使用 IPP 有效地调整图像大小,但 IPP 真正令人好奇的部分是“IPP 图像调整功能是否关心 alpha 值位置?”
图像的像素类型确实很多,但有两种像素类型使用得很好:“ARGB、RGBA”。和ippiResizeNearest_8u_C4R
函数根据Intel IPP function naming documentation 调整四 channel 图像 的大小| .
正如您在文档中看到的,我们可以区分 alpha channel 的函数关注位置,如:A
、A0
。但是 ippiResizeNearest_8u_C4R
函数没有任何 alpha channel 描述符。所以我什至不能指望哪个颜色顺序 IPP 会调整大小。
所以我的问题是:英特尔 IPP 图像调整大小功能是否关心 alpha 值的位置?如果不是,ippiResizeNearest_8u_C4R
函数的默认像素类型是什么?
最佳答案
我不是 IPP 专家,但快速阅读文档似乎证实了我认为是正确的。其他任何内容对我来说都没有意义。
调整多 channel 图像的大小通常针对每个 channel 单独完成,因为 channel 之间的插值没有意义(假设我们正在谈论 2d 图像)。它会完全弄乱颜色和透明胶片。
如果我们分别为每个 channel 执行此操作,IPP 不应该关心您如何调用您的 channel 。它会像 RGBA 一样调整 ARGB 的大小。它不会更改 channel 顺序,因此如果您将 ARGB 放入,您将获得调整大小的 ARGB。在调整大小的情况下,您在这 4 个 channel 中存储的内容无关紧要。
试试吧。在每个 channel 中创建具有不同值的测试图像。调整大小后的图像仍应具有这些值。
关于c++ - 英特尔 IPP 图像调整大小功能是否关心 alpha 值的位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43184123/