【发布时间】:2012-05-07 15:53:17
【问题描述】:
我想使用 IPP(集成性能基元)函数创建线性渐变,并避免逐个像素的颜色操作。
换句话说,我找不到合适的函数或函数组合来创建渐变 R0 到 R1、G0 到 G1、B0 到 B1(初始和最终 RGB 值)的 RGB 图像。 我可以通过循环每个像素并设置颜色来手动创建它,但我希望有更优雅(和快速)的方法来做到这一点。
【问题讨论】:
标签: image-processing colors intel-ipp
我想使用 IPP(集成性能基元)函数创建线性渐变,并避免逐个像素的颜色操作。
换句话说,我找不到合适的函数或函数组合来创建渐变 R0 到 R1、G0 到 G1、B0 到 B1(初始和最终 RGB 值)的 RGB 图像。 我可以通过循环每个像素并设置颜色来手动创建它,但我希望有更优雅(和快速)的方法来做到这一点。
【问题讨论】:
标签: image-processing colors intel-ipp
按照我的理解,ippiImageRamp 只能创建灰度值斜坡,对吗?
或者,您可以使用ippiResizeSqrPixel 使用IPPI_INTER_LINEAR 插值将 2x2 像素图像调整为全尺寸:
RGB0 | RGB1
--------------- => [Full Sized Image]
RGB0 | RGB1
结果应该是线性渐变(尽管我从未尝试过)。如果需要旋转渐变,可以使用ippiWarpAffine同时缩放和旋转。
【讨论】:
我找到了一些解决方案。借助 ippiImageRamp 函数。
该函数创建一个可用作测试图像的单通道或三通道图像,以检查应用不同图像处理函数的效果。
目标图像像素值根据以下公式之一计算:
dst(x,y) = 偏移 + 斜率 * x,如果轴 = ippAxsHorizontal,
dst(x,y) = 偏移 + 斜率 * y,如果轴 = ippAxsVertical,
dst(x,y) = 偏移 + 斜率 * x * y,如果轴 = ippAxsBoth
【讨论】: