VPI - 视觉编程接口

3.2 版本

Canny 边缘检测器

对输入图像运行 Canny 边缘检测器算法。 更多...

数据结构

struct  VPICannyEdgeDetectorParams
 定义 vpiSubmitCannyEdgeDetector 参数的结构体。 更多...
 

函数

VPIStatus vpiCreateCannyEdgeDetector (uint64_t backends, int32_t imageWidth, int32_t imageHeight, VPIPayload *payload)
 vpiSubmitCannyEdgeDetector 创建负载 (payload)。 更多...
 
VPIStatus vpiInitCannyEdgeDetectorParams (VPICannyEdgeDetectorParams *params)
 使用默认值初始化 vpiInitCannyEdgeDetectorParams更多...
 
VPIStatus vpiSubmitCannyEdgeDetector (VPIStream stream, uint64_t backend, VPIPayload payload, VPIImage input, VPIImage output, float thresholdStrong, float thresholdWeak, float edgeValue, float nonEdgeValue, const VPICannyEdgeDetectorParams *params)
 对图像运行 Canny 边缘检测器算法。 更多...
 

详细描述

对输入图像运行 Canny 边缘检测器算法。

有关更多详细信息和使用示例,请参阅 Canny 边缘检测器


数据结构文档

◆ VPICannyEdgeDetectorParams

struct VPICannyEdgeDetectorParams

定义 vpiSubmitCannyEdgeDetector 参数的结构体。

定义于文件 CannyEdges.h 的第 107 行。

+ VPICannyEdgeDetectorParams 的协作图
数据字段
VPINormType normType 确定用于计算梯度强度的范数类型。
VPIGradientMethod gradMethod 指定用于从输入图像生成梯度的方法。
int32_t gradientSize 梯度窗口大小。
  • 必须为 3、5 或 7。

函数文档

◆ vpiCreateCannyEdgeDetector()

VPIStatus vpiCreateCannyEdgeDetector ( uint64_t  backends,
int32_t  imageWidth,
int32_t  imageHeight,
VPIPayload payload 
)

#include <vpi/algo/CannyEdges.h>

vpiSubmitCannyEdgeDetector 创建负载 (payload)。

参数
[in]backends有资格执行该算法的 VPI 后端。
[in]imageWidth, imageHeight输入图像尺寸。
  • 必须 >= 1x1。
[out]payload指向接收创建句柄的负载变量的指针。
返回值
VPI_ERROR_INVALID_ARGUMENTpayload 为 NULL。
VPI_ERROR_INVALID_ARGUMENTimageWidthimageHeight 超出有效范围。
VPI_ERROR_INVALID_ARGUMENTbackends 指的是无效的后端。
VPI_ERROR_INVALID_OPERATION后端在当前上下文中未启用。
VPI_ERROR_NOT_IMPLEMENTED给定后端不支持 Canny 边缘检测器算法。
VPI_ERROR_INVALID_CONTEXT当前上下文已销毁。
VPI_ERROR_OUT_OF_MEMORY无法分配所需资源。
VPI_SUCCESS操作成功执行。

◆ vpiInitCannyEdgeDetectorParams()

VPIStatus vpiInitCannyEdgeDetectorParams ( VPICannyEdgeDetectorParams params)

#include <vpi/algo/CannyEdges.h>

使用默认值初始化 vpiInitCannyEdgeDetectorParams

默认值

  • normType: VPI_NORM_L2
  • gradMethod: GEN_GRADIENT_SOBEL
  • gradientSize: 3
参数
[out]params要填充默认值的结构体。
返回值
失败时返回错误代码,否则返回 VPI_SUCCESS

◆ vpiSubmitCannyEdgeDetector()

VPIStatus vpiSubmitCannyEdgeDetector ( VPIStream  stream,
uint64_t  backend,
VPIPayload  payload,
VPIImage  input,
VPIImage  output,
float  thresholdStrong,
float  thresholdWeak,
float  edgeValue,
float  nonEdgeValue,
const VPICannyEdgeDetectorParams params 
)

#include <vpi/algo/CannyEdges.h>

对图像运行 Canny 边缘检测器算法。

参数
[in]stream操作将排队进入的流句柄。
  • 不得为 NULL。
  • 流必须已启用将执行该算法的后端。
[in]backend将执行该算法的后端。
[in]payload指向接收创建句柄的负载变量的指针。
[in]input输入图像。
[out]output结果写入到的输出图像。
  • 不得为 NULL。
  • 它必须具有与输入图像相同的尺寸。
  • 图像必须已启用将执行该算法的后端。
  • 接受的格式与 input 相同
[in]thresholdStrong用于迟滞过程的强阈值。
[in]thresholdWeak用于迟滞过程的弱阈值。
[in]edgeValue用于标记边缘的值。
  • 此值应与 nonEdgeValue 不同。
  • 如果此值超出输出图像的值范围,则将被钳制。
[in]nonEdgeValue用于标记非边缘的值。
  • 此值应与 edgeValue 不同。
  • 如果此值超出输出图像的值范围,则将被钳制。
[in]paramsCanny 边缘检测器算法的控制参数。
返回值
VPI_ERROR_INVALID_ARGUMENTstream 为 NULL。
VPI_ERROR_INVALID_ARGUMENTinputoutput 为 NULL。
VPI_ERROR_INVALID_ARGUMENTinputoutput 图像尺寸超出有效范围。
VPI_ERROR_INVALID_ARGUMENTbackend 无效或未知。
VPI_ERROR_INVALID_IMAGE_FORMAT不支持 inputoutput 图像格式。
VPI_ERROR_INVALID_OPERATION后端硬件不可用。
VPI_ERROR_INVALID_OPERATION所需的后端在 streaminputoutput 中未启用。
VPI_ERROR_NOT_IMPLEMENTED给定后端不支持 Canny 边缘检测器算法。
VPI_SUCCESS操作成功执行。