VPI - 视觉编程接口

3.2 版本

模板匹配算法

使用模板图像在搜索图像上运行模板匹配算法。 更多...

枚举

enum  VPITemplateMatchingMethod
 定义计算模板匹配得分的模板匹配方法更多...
 

函数

VPIStatus vpiCreateTemplateMatching (uint64_t backends, int32_t imageWidth, int32_t imageHeight, VPIPayload *payload)
 vpiSubmitTemplateMatching 创建负载 (payload)。 更多...
 
VPIStatus vpiTemplateMatchingSetSourceImage (VPIStream stream, uint64_t backend, VPIPayload payload, VPIImage srcImage)
 设置源图像。 更多...
 
VPIStatus vpiTemplateMatchingSetTemplateImage (VPIStream stream, uint64_t backend, VPIPayload payload, VPIImage templImage, VPIImage mask)
 设置模板图像。 更多...
 
VPIStatus vpiSubmitTemplateMatching (VPIStream stream, uint64_t backend, VPIPayload payload, VPIImage output, VPITemplateMatchingMethod method)
 使用提供的模板运行模板匹配算法。 更多...
 

详细描述

使用模板图像在搜索图像上运行模板匹配算法。

有关更多详细信息和用法示例,请参阅 模板匹配

枚举类型文档

◆ VPITemplateMatchingMethod

#include <vpi/algo/TemplateMatching.h>

定义计算模板匹配得分的模板匹配方法

枚举器
VPI_TEMPLATE_MATCHING_NCC 

归一化互相关。

定义于文件 TemplateMatching.h 的第 195 行。

函数文档

◆ vpiCreateTemplateMatching()

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

#include <vpi/algo/TemplateMatching.h>

vpiSubmitTemplateMatching 创建负载 (payload)。

注意
为了使此函数成功执行,必须在系统中安装以下库
  • libnppc.so.11
  • libnppial.so.11
  • libnppidei.so.11
  • libnppist.so.11
参数
[输入]backends有资格执行算法的 VPI 后端。
[输入]imageWidth源图像宽度。
[输入]imageHeight源图像高度。
[输出]payload指向接收创建句柄的 payload 变量的指针。
返回值
VPI_ERROR_INVALID_ARGUMENTpayload 为 NULL。
VPI_ERROR_INVALID_ARGUMENTimageWidthimageHeight 超出有效范围。
VPI_ERROR_INVALID_ARGUMENTbackends 指的是无效的后端。
VPI_ERROR_INVALID_OPERATION后端未在当前上下文中启用。
VPI_ERROR_INVALID_OPERATION系统中未安装所需的 NPP 库。
VPI_ERROR_NOT_IMPLEMENTED给定后端不支持该算法。
VPI_ERROR_INVALID_CONTEXT当前上下文已销毁。
VPI_ERROR_OUT_OF_MEMORY无法分配所需资源。
VPI_SUCCESS操作执行成功。

◆ vpiTemplateMatchingSetSourceImage()

VPIStatus vpiTemplateMatchingSetSourceImage ( VPIStream  stream,
uint64_t  backend,
VPIPayload  payload,
VPIImage  srcImage 
)

#include <vpi/algo/TemplateMatching.h>

设置源图像。

参数
[输入]stream操作将排队进入的流句柄。
  • 不能为空 (NULL)。
  • 流必须启用将执行算法的后端。
[输入]backend将执行算法的后端。
[输入]payload指向接收创建句柄的 payload 变量的指针。
[输入]srcImage将在其上搜索模板图像的源图像。
返回值
VPI_ERROR_INVALID_ARGUMENTpayload 为 NULL。
VPI_ERROR_INVALID_ARGUMENTsrcImage 为 NULL。
VPI_ERROR_INVALID_ARGUMENTsrcImage 分辨率与 vpiCreateTemplateMatching 中指定的分辨率不匹配。
VPI_ERROR_INVALID_OPERATION后端未在当前上下文中启用。
VPI_ERROR_INVALID_OPERATIONsrcImage 中未启用所需的后端。
VPI_ERROR_INVALID_CONTEXT当前上下文已销毁。
VPI_ERROR_OUT_OF_MEMORY无法分配所需资源。
VPI_SUCCESS操作执行成功。

◆ vpiTemplateMatchingSetTemplateImage()

VPIStatus vpiTemplateMatchingSetTemplateImage ( VPIStream  stream,
uint64_t  backend,
VPIPayload  payload,
VPIImage  templImage,
VPIImage  mask 
)

#include <vpi/algo/TemplateMatching.h>

设置模板图像。

参数
[输入]stream操作将排队进入的流句柄。
  • 不能为空 (NULL)。
  • 流必须启用将执行算法的后端。
[输入]backend将执行算法的后端。
[输入]payload指向接收创建句柄的 payload 变量的指针。
[输入]templImage模板图像。
[输入]mask计算模板匹配得分时使用的掩码。
  • 如果不需要,可以为 NULL。
  • 必须与模板图像具有相同的尺寸
  • 接受的图像格式为
    格式CPUCUDA
    VPI_IMAGE_FORMAT_U8 * *
返回值
VPI_ERROR_INVALID_ARGUMENTpayload 为 NULL。
VPI_ERROR_INVALID_ARGUMENTtemplImage 为 NULL。
VPI_ERROR_INVALID_ARGUMENTtemplImage 分辨率大于源图像。
VPI_ERROR_INVALID_OPERATION后端未在当前上下文中启用。
VPI_ERROR_INVALID_OPERATIONtemplImage 中未启用所需的后端。
VPI_ERROR_INVALID_CONTEXT当前上下文已销毁。
VPI_ERROR_OUT_OF_MEMORY无法分配所需资源。
VPI_SUCCESS操作执行成功。

◆ vpiSubmitTemplateMatching()

VPIStatus vpiSubmitTemplateMatching ( VPIStream  stream,
uint64_t  backend,
VPIPayload  payload,
VPIImage  output,
VPITemplateMatchingMethod  method 
)

#include <vpi/algo/TemplateMatching.h>

使用提供的模板运行模板匹配算法。

参数
[输入]stream操作将排队进入的流句柄。
  • 不能为空 (NULL)。
  • 流必须启用将执行算法的后端。
[输入]backend将执行算法的后端。
[输入]payload指向接收创建句柄的 payload 变量的指针。
[输出]output模板匹配得分将写入到的输出图像。
  • 不能为空 (NULL)。
  • 假设源图像的分辨率为 WxH,模板图像的分辨率为 wxh,则输出图像应具有 (W - w + 1) * (H - h + 1) 的分辨率
  • 图像格式必须为 VPI_IMAGE_FORMAT_F32。
  • 图像必须启用将执行算法的后端。
[输入]method指定计算模板匹配得分时使用的方法 (模板匹配方法)。
返回值
VPI_ERROR_INVALID_ARGUMENTstream 为 NULL。
VPI_ERROR_INVALID_ARGUMENToutput 为 NULL。
VPI_ERROR_INVALID_ARGUMENTbackend 无效或未知。
VPI_ERROR_INVALID_IMAGE_FORMAT不支持 output 图像格式。
VPI_ERROR_INVALID_OPERATION后端硬件不可用。
VPI_ERROR_INVALID_OPERATIONstreamoutput 中未启用所需的后端。
VPI_ERROR_NOT_IMPLEMENTED给定后端不支持该算法。
VPI_SUCCESS操作执行成功。