【问题标题】:Linear gradient with IPP functions具有 IPP 函数的线性梯度
【发布时间】:2012-05-07 15:53:17
【问题描述】:

我想使用 IPP(集成性能基元)函数创建线性渐变,并避免逐个像素的颜色操作。

换句话说,我找不到合适的函数或函数组合来创建渐变 R0 到 R1、G0 到 G1、B0 到 B1(初始和最终 RGB 值)的 RGB 图像。 我可以通过循环每个像素并设置颜色来手动创建它,但我希望有更优雅(和快速)的方法来做到这一点。

【问题讨论】:

    标签: image-processing colors intel-ipp


    【解决方案1】:

    按照我的理解,ippiImageRamp 只能创建灰度值斜坡,对吗?

    或者,您可以使用ippiResizeSqrPixel 使用IPPI_INTER_LINEAR 插值将 2x2 像素图像调整为全尺寸:

    RGB0   |   RGB1
    ---------------                 =>         [Full Sized Image]
    RGB0   |   RGB1
    

    结果应该是线性渐变(尽管我从未尝试过)。如果需要旋转渐变,可以使用ippiWarpAffine同时缩放和旋转。

    【讨论】:

    • 关于 ResizeSqrPixel 的好主意,不确定性能。我实际上使用 ippiRotate 进行平移和旋转,但 ippiWarpAffine 也可以完成这项工作。 ippiImageRamp 在 RGB 上工作,但不是独立的。我当前的算法实际上只需要灰度值斜坡进行初始化。
    【解决方案2】:

    我找到了一些解决方案。借助 ippiImageRamp 函数。

    该函数创建一个可用作测试图像的单通道或三通道图像,以检查应用不同图像处理函数的效果。

    目标图像像素值根据以下公式之一计算:

    dst(x,y) = 偏移 + 斜率 * x,如果轴 = ippAxsHorizo​​ntal,

    dst(x,y) = 偏移 + 斜率 * y,如果轴 = ippAxsVertical,

    dst(x,y) = 偏移 + 斜率 * x * y,如果轴 = ippAxsBoth

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-03-20
      • 2017-12-03
      • 1970-01-01
      • 2019-08-20
      • 2012-11-25
      • 1970-01-01
      • 2021-11-16
      相关资源
      最近更新 更多