VPI - Vision Programming Interface

3.2 版本

中值滤波器

对输入图像运行 2D 中值滤波器。 更多...

函数

VPIStatus vpiSubmitMedianFilter (VPIStream stream, uint64_t backend, VPIImage input, VPIImage output, int32_t kernelWidth, int32_t kernelHeight, const int8_t *kernelData, VPIBorderExtension border)
 对图像运行 2D 中值滤波器。 更多...
 

详细描述

对输入图像运行 2D 中值滤波器。

有关中值滤波器的更多详细信息和使用示例,请参阅 中值滤波器

函数文档

◆ vpiSubmitMedianFilter()

VPIStatus vpiSubmitMedianFilter ( VPIStream  stream(流),
uint64_t  backend(后端),
VPIImage  input(输入),
VPIImage  output(输出),
int32_t  kernelWidth(内核宽度),
int32_t  kernelHeight(内核高度),
const int8_t *  kernelData(内核数据),
VPIBorderExtension  border(边界) 
)

#include <vpi/algo/MedianFilter.h>

对图像运行 2D 中值滤波器。

参数
[in](输入)stream(流)操作将排队到其中的流句柄。
[in](输入)backend(后端)将执行算法的后端。
[in](输入)input(输入)要降噪的输入图像。
[out](输出)output(输出)结果写入到的输出图像。
  • 不得为 NULL。
  • 必须具有与输入图像相同的格式和尺寸。
  • 图像必须已启用将执行算法的后端。
[in](输入)kernelWidth,kernelHeight(内核宽度,内核高度)内核尺寸。 与源像素对齐的内核权重坐标由以下公式给出

\begin{align*} k_x &= \mathit{kernelWidth}/2 \\ k_y &= \mathit{kernelHeight}/2 \end{align*}

  • 必须介于 1x1 和 11x11 之间,可以是非正方形。
[in](输入)kernelData(内核数据)中值内核二进制掩码。 它定义了结构元素或中值计算掩码,以行优先布局排列。 中值计算中将使用非零内核元素下的像素。 调整内核元素复制到内部缓冲区的大小,调用后可以释放给定的缓冲区。 对于中值计算中的所有元素,请使用 NULL,即,所有内核元素都被视为非零。
  • 如果不是 NULL,则它必须指向具有 kernelWidth * kernelHeight 个元素的缓冲区。
[in](输入)border(边界)如何处理图像边界外的像素。
返回值
VPI_ERROR_INVALID_ARGUMENTstream 为 NULL。
VPI_ERROR_INVALID_ARGUMENTinputoutput 为 NULL。
VPI_ERROR_INVALID_ARGUMENTinputoutput 图像尺寸和格式不匹配。
VPI_ERROR_INVALID_ARGUMENT给定格式不支持图像尺寸。
VPI_ERROR_INVALID_ARGUMENT不支持 border
VPI_ERROR_INVALID_ARGUMENTbackend 无效或未知。
VPI_ERROR_INVALID_IMAGE_FORMAT不支持 inputoutput 格式
VPI_ERROR_NOT_IMPLEMENTED给定后端不支持中值滤波器算法。
VPI_ERROR_INVALID_OPERATION后端硬件不可用。
VPI_ERROR_INVALID_OPERATIONstreaminputoutput 中未启用所需后端。
VPI_SUCCESS操作成功执行。