OpenCV 4.11.0
开源计算机视觉
加载中…
搜索中…
无匹配项
FastCV 硬件加速函数的模块包装器

详细描述

类  cv::fastcv::FCVMSER
 用于灰度图像的MSER斑点检测器。更多…
 

函数

void cv::fastcv::bilateralFilter (InputArray _src, OutputArray _dst, int d, float sigmaColor, float sigmaSpace, int borderType=BORDER_DEFAULT)
 应用双边滤波器到图像,考虑每个像素邻域的d像素直径。此滤波器不进行就地操作。
 
void cv::fastcv::bilateralRecursive (cv::InputArray src, cv::OutputArray dst, float sigmaColor=0.03f, float sigmaSpace=0.1f)
 递归双边滤波。
 
void cv::fastcv::buildPyramid (InputArray src, OutputArrayOfArrays pyr, int nLevels, bool scaleBy2=true, int borderType=cv::BORDER_REFLECT, uint8_t borderValue=0)
 构建由单个原始图像生成的 float32 图像金字塔,这些图像相对于预设级别依次缩小。此 API 支持ORB缩放和按一半缩小。
 
void cv::fastcv::calcHist (InputArray _src, OutputArray _hist)
 计算输入图像的直方图。此函数以优化方式实现了 8u 单通道图像的 256 分箱直方图计算的特定用例。
 
void cv::fastcv::clusterEuclidean (InputArray points, InputArray clusterCenters, OutputArray newClusterCenters, OutputArray clusterSizes, OutputArray clusterBindings, OutputArray clusterSumDists, int numPointsUsed=-1)
 将 N 个输入点在 D 维空间中聚类到 K 个聚类中。接受 8 位无符号整数点。在高通处理器上比cv::kmeans执行速度更快。
 
void cv::fastcv::DCT (InputArray src, OutputArray dst)
 此函数对输入图像执行 8x8 正向离散余弦变换,接受 8 位无符号整数类型输入,并产生 16 位有符号整数类型输出。在高通处理器上比cv::dct执行速度更快。
 
void cv::fastcv::FAST10 (InputArray src, InputArray mask, OutputArray coords, OutputArray scores, int barrier, int border, bool nmsEnabled)
 根据掩码从图像中提取 FAST10 角点和分数。掩码指定检测器应忽略的像素,该检测器专为高通处理器的角点检测而设计,速度更快。
 
void cv::fastcv::FFT (InputArray src, OutputArray dst)
 计算实值矩阵的一维或二维快速傅里叶变换。对于二维情况,输入和输出矩阵的宽度和高度必须是 2 的幂。对于一维情况,矩阵的高度必须为 1,而宽度必须是 2 的幂。接受 8 位无符号整数数组,而cv::dft接受浮点型或复数数组。
 
void cv::fastcv::fillConvexPoly (InputOutputArray img, InputArray pts, Scalar color)
 绘制凸多边形。此函数使用指定的颜色填充凸多边形的内部。要求宽度和步长是 8 的倍数。
 
void cv::fastcv::filter2D (InputArray _src, OutputArray _dst, int ddepth, InputArray _kernel)
 使用不可分离核的 NxN 相关性。忽略高达半核宽度的边界。
 
void cv::fastcv::gaussianBlur (InputArray _src, OutputArray _dst, int kernel_size=3, bool blur_border=true)
 具有 sigma = 0 和方形核大小的高斯模糊。处理边界的方式与cv::GaussianBlur不同,导致输出略有差异。
 
void cv::fastcv::houghLines (InputArray src, OutputArray lines, double threshold=0.25)
 执行霍夫线检测。
 
void cv::fastcv::IDCT (InputArray src, OutputArray dst)
 此函数对输入图像执行 8x8 逆离散余弦变换。在高通处理器上比cv::dct的逆变换情况执行速度更快。
 
void cv::fastcv::IFFT (InputArray src, OutputArray dst)
 计算复值矩阵的一维或二维逆快速傅里叶变换。对于二维情况,输入和输出矩阵的宽度和高度必须是 2 的幂。对于一维情况,矩阵的高度必须为 1,而宽度必须是 2 的幂。
 
void cv::fastcv::matmuls8s32 (InputArray src1, InputArray src2, OutputArray dst)
 两个int8_t类型矩阵的矩阵乘法使用有符号整型输入/输出,而cv::gemm使用浮点型输入/输出。matmuls8s32在高通处理器上提供了更高的速度。
 
int cv::fastcv::meanShift (InputArray src, Rect &rect, TermCriteria termCrit)
 应用均值漂移过程并获取最终收敛位置。此函数将均值漂移过程应用于原始图像(通常是概率图像),并获取最终收敛位置。收敛位置搜索将停止,直到达到所需的精度或最大迭代次数。Moments在算法中使用的矩是使用浮点数计算的。此函数与cv::meanShift的计算结果并不完全一致,但在骁龙处理器上提供了改进的延迟。
 
cv::Moments cv::fastcv::moments (InputArray _src, bool binary)
 计算图像像素强度高达三阶的所有矩。结果以结构体cv::Moments返回。此函数cv::fastcv::moments()使用浮点计算来计算矩,而cv::moments()使用双精度浮点数计算矩。
 
void cv::fastcv::remap (InputArray src, OutputArray dst, InputArray map1, InputArray map2, int interpolation, int borderValue=0)
 将通用几何变换应用于灰度CV_8UC1图像。
 
void cv::fastcv::remapRGBA (InputArray src, OutputArray dst, InputArray map1, InputArray map2, int interpolation)
 使用双线性或最近邻插值将通用几何变换应用于4通道CV_8UC4图像。
 
void cv::fastcv::resizeDownBy2 (cv::InputArray _src, cv::OutputArray _dst)
 通过平均每个2x2像素块来缩小图像。此函数与cv::resize的计算结果并不完全一致,但在高通处理器上提供了更快的执行时间。
 
void cv::fastcv::resizeDownBy4 (cv::InputArray _src, cv::OutputArray _dst)
 通过平均每个4x4像素块来缩小图像。此函数与cv::resize的计算结果并不完全一致,但在高通处理器上提供了更快的执行时间。
 
void cv::fastcv::sepFilter2D (InputArray _src, OutputArray _dst, int ddepth, InputArray _kernelX, InputArray _kernelY)
 使用可分离核的NxN相关运算。如果srcImg和dstImg指向相同的地址并且srcStride等于dstStride,则它将进行就地操作。忽略最多一半核宽度的边界。溢出处理方式与OpenCV不同,此函数将对中间结果和最终结果进行右移。
 
void cv::fastcv::sobel (InputArray _src, OutputArray _dx, OutputArray _dy, int kernel_size, int borderType, int borderValue)
 从源亮度数据创建2D梯度图像,无需归一化。同时计算X方向一阶导数或Y方向一阶导数或两者。
 
void cv::fastcv::sobel3x3u8 (InputArray _src, OutputArray _dst, OutputArray _dsty=noArray(), int ddepth=CV_8U, bool normalization=false)
 从源亮度数据创建2D梯度图像,无需归一化。此函数计算3x3邻域上的中心差分,然后用Sobel核卷积结果,忽略最多一半核宽度的边界。
 
void cv::fastcv::sobelPyramid (InputArrayOfArrays pyr, OutputArrayOfArrays dx, OutputArrayOfArrays dy, int outType=CV_8S)
 从图像金字塔创建梯度金字塔。
 
void cv::fastcv::thresholdRange (InputArray src, OutputArray dst, int lowThresh, int highThresh, int trueValue, int falseValue)
 基于一对阈值对灰度图像进行二值化处理。二值化图像将采用用户选择的两个值,此函数可在骁龙处理器上提高延迟性能。
 
void cv::fastcv::trackOpticalFlowLK (InputArray src, InputArray dst, InputArrayOfArrays srcPyr, InputArrayOfArrays dstPyr, InputArray ptsIn, OutputArray ptsOut, InputArray ptsEst, OutputArray statusVec, cv::Size winSize={7, 7}, cv::TermCriteria termCriteria={cv::TermCriteria::MAX_ITER|cv::TermCriteria::EPS, 7, 0.03f *0.03f})
 使用Lucas-Kanade算法计算稀疏光流,接受8位无符号整数图像,在高通处理器上提供更快的执行时间。
 
void cv::fastcv::trackOpticalFlowLK (InputArray src, InputArray dst, InputArrayOfArrays srcPyr, InputArrayOfArrays dstPyr, InputArrayOfArrays srcDxPyr, InputArrayOfArrays srcDyPyr, InputArray ptsIn, OutputArray ptsOut, OutputArray statusVec, cv::Size winSize={7, 7}, int maxIterations=7)
 LK跟踪函数v1的重载。
 
void cv::fastcv::warpPerspective2Plane (InputArray _src1, InputArray _src2, OutputArray _dst1, OutputArray _dst2, InputArray _M0, Size dsize)
 使用相同的变换对两幅图像进行透视变换。在适用情况下使用双线性插值。例如,同时变换灰度图像和alpha图像,或变换两个颜色通道。
 

函数文档

◆ bilateralFilter()

void cv::fastcv::bilateralFilter ( 输入数组 _src,
输出数组 _dst,
整数 d,
浮点数 sigmaColor,
浮点数 sigmaSpace,
整数 borderType = BORDER_DEFAULT )

#include <opencv2/fastcv/bilateralFilter.hpp>

应用双边滤波器到图像,考虑每个像素邻域的d像素直径。此滤波器不进行就地操作。

参数
_src类型为CV_8UC1的输入图像
_dst与_src类型相同的目标图像
d内核大小(可以是5、7或9)
sigmaColor颜色空间中的滤波器sigma。典型值为50.0f。增加此值意味着增加颜色差异更大的相邻像素对平滑结果的影响。
sigmaSpace坐标空间中的滤波器sigma。典型值为1.0f。增加此值意味着增加内核大小距离内较远相邻像素对平滑结果的影响。
borderType用于外推图像外部像素的边界模式

◆ bilateralRecursive()

void cv::fastcv::bilateralRecursive ( cv::InputArray src,
cv::OutputArray dst,
浮点数 sigmaColor = 0.03f,
浮点数 sigmaSpace = 0.1f )

#include <opencv2/fastcv/smooth.hpp>

递归双边滤波。

与传统的双边滤波不同,这里的平滑实际上是在梯度域进行的。该算法声称它在图像质量和计算方面都比原始双边滤波更有效。参见杨庆雄教授在ECCV2012论文Recursive Bilateral Filtering中的算法描述。此函数与cv::bilateralFilter并不完全相同,但在骁龙处理器上提供了更低的延迟。

参数
src输入图像,应具有一个CV_8U通道
dst具有一个CV_8U通道的输出数组
sigmaColor颜色空间中的Sigma,值越大,算法平滑的颜色差异越大
sigmaSpace坐标空间中的Sigma,值越大,平滑的像素距离越远

◆ buildPyramid()

void cv::fastcv::buildPyramid ( 输入数组 src,
输出数组 pyr,
整数 nLevels,
布尔值 scaleBy2 = true,
整数 borderType = cv::BORDER_REFLECT,
无符号8位整数 borderValue = 0 )

#include <opencv2/fastcv/pyramid.hpp>

构建由单个原始图像生成的 float32 图像金字塔,这些图像相对于预设级别依次缩小。此 API 支持ORB缩放和按一半缩小。

参数
src类型为8U或32F的单通道输入图像
pyr包含nLevels缩小图像副本的输出数组
nLevels要生成的图像金字塔层数
scaleBy2将图像缩小2倍或缩小1/(2)^(1/4)倍(近似为0.8408964,即ORB缩小),浮点图像不支持ORB缩小
borderType如何处理边界,选项包括BORDER_REFLECT(映射到FASTCV_BORDER_REFLECT)、BORDER_REFLECT_101(映射到FASTCV_BORDER_REFLECT_V2)和BORDER_REPLICATE(映射到FASTCV_BORDER_REPLICATE)。其他边界类型映射到FASTCV_BORDER_UNDEFINED(忽略边界像素)。目前,边界仅支持缩小一半,ORB缩小忽略边界。浮点图像也忽略边界。
borderValue应使用什么值来填充边界,浮点图像忽略此值。

◆ calcHist()

void cv::fastcv::calcHist ( 输入数组 _src,
输出数组 _hist )

#include <opencv2/fastcv/histogram.hpp>

计算输入图像的直方图。此函数以优化方式实现了 8u 单通道图像的 256 分箱直方图计算的特定用例。

参数
_src类型为CV_8UC1的输入图像
_hist类型为int,包含256个bin的输出直方图

◆ clusterEuclidean()

void cv::fastcv::clusterEuclidean ( 输入数组 points,
输入数组 clusterCenters,
输出数组 newClusterCenters,
输出数组 clusterSizes,
输出数组 clusterBindings,
输出数组 clusterSumDists,
整数 numPointsUsed = -1 )

#include <opencv2/fastcv/cluster.hpp>

将 N 个输入点在 D 维空间中聚类到 K 个聚类中。接受 8 位无符号整数点。在高通处理器上比cv::kmeans执行速度更快。

参数
points类型为 8u 的点数组,每一行表示一个点。大小为 N 行 D 列,可以是非连续的。
clusterCenters类型为 32f 的初始聚类中心数组,每一行表示一个中心。大小为 K 行 D 列,可以是非连续的。
newClusterCenters类型为 32f 的结果聚类中心数组,每一行表示找到的中心。大小设置为 K 行 D 列。
clusterSizes类型为 uint32 的结果聚类成员计数数组,大小设置为 1 行 K 列。
clusterBindings类型为 uint32 的结果点索引数组,每个索引表示对应的点属于哪个聚类。大小设置为 1 行 numPointsUsed 列。
clusterSumDists类型为 32f 的结果距离总和数组,每个数字是每个聚类中心与其所属点之间距离的总和。大小设置为 1 行 K 列。
numPointsUsed要聚类的点数,从 0 到 numPointsUsed-1(包含)。如果为负数,则设置为 N。

◆ DCT()

void cv::fastcv::DCT ( 输入数组 src,
输出数组 dst )

#include <opencv2/fastcv/ipptransform.hpp>

此函数对输入图像执行 8x8 正向离散余弦变换,接受 8 位无符号整数类型输入,并产生 16 位有符号整数类型输出。在高通处理器上比cv::dct执行速度更快。

参数
src类型为 CV_8UC1 的输入图像
dst类型为 CV_16SC1 的输出图像

◆ FAST10()

void cv::fastcv::FAST10 ( 输入数组 src,
输入数组 掩膜,
输出数组 坐标,
输出数组 分数,
整数 障碍,
整数 边界,
布尔值 nmsEnabled )

#include <opencv2/fastcv/fast10.hpp>

根据掩码从图像中提取 FAST10 角点和分数。掩码指定检测器应忽略的像素,该检测器专为高通处理器的角点检测而设计,速度更快。

参数
src8 位灰度图像
掩膜可选掩膜,指示哪些像素应从角点检测中省略。其大小应为图像宽度和高度的 k 倍,其中 k = 1/2、1/4、1/8、1、2、4 和 8。有关更多详细信息,请参阅 FastCV 中 `fcvCornerFast9InMaskScoreu8` 函数的文档。
坐标包含检测到的角点的交错 x、y 位置的 CV_32S 输出数组
分数可选输出数组,包含检测到的角点的分数。分数是可以仍然验证检测到的角点的最高阈值。较高的分数值表示更强的角点特征。例如,分数为 108 的角点比分数为 50 的角点更强。
障碍FAST 阈值。该阈值用于比较中心像素与围绕该像素的圆圈上的像素之间的强度值差异。
边界忽略图像顶部、底部、右侧和左侧像素的个数。如果低于 4,则默认为 4。
nmsEnabled启用非最大值抑制以修剪弱关键点。

◆ FFT()

void cv::fastcv::FFT ( 输入数组 src,
输出数组 dst )

#include <opencv2/fastcv/fft.hpp>

计算实值矩阵的一维或二维快速傅里叶变换。对于二维情况,输入和输出矩阵的宽度和高度必须是 2 的幂。对于一维情况,矩阵的高度必须为 1,而宽度必须是 2 的幂。接受 8 位无符号整数数组,而cv::dft接受浮点型或复数数组。

参数
src类型为 CV_8UC1 的输入数组。对于二维情况,矩阵的维度必须是 2 的幂;对于一维情况,高度必须为 1,而宽度必须是 2 的幂。
dst计算出的类型为 CV_32FC2 的 FFT 矩阵。FFT 实部和虚部系数存储在不同的通道中。因此,dst 的维度为 (srcWidth, srcHeight)。

◆ fillConvexPoly()

void cv::fastcv::fillConvexPoly ( 输入输出数组 img,
输入数组 pts,
标量 color )

#include <opencv2/fastcv/draw.hpp>

绘制凸多边形。此函数使用指定的颜色填充凸多边形的内部。要求宽度和步长是 8 的倍数。

参数
img要绘制图像的图像。最多应有 4 个 8 位通道。
pts多边形点坐标数组。应包含 N 个双通道或 2*N 个单通道 32 位整数元素。
color绘制多边形的颜色,存储为 B、G、R 和 A(如果支持)。

◆ filter2D()

void cv::fastcv::filter2D ( 输入数组 _src,
输出数组 _dst,
整数 ddepth,
输入数组 _kernel )

#include <opencv2/fastcv/blur.hpp>

使用不可分离核的 NxN 相关性。忽略高达半核宽度的边界。

参数
_src类型为CV_8UC1的输入图像
_dst类型为 CV_8UC1、CV_16SC1 或 CV_32FC1 的输出图像
ddepth输出图像的深度
_kernel滤波器内核数据
另请参见
Filter2D

◆ gaussianBlur()

void cv::fastcv::gaussianBlur ( 输入数组 _src,
输出数组 _dst,
整数 kernel_size = 3,
布尔值 blur_border = true )

#include <opencv2/fastcv/blur.hpp>

具有 sigma = 0 和方形核大小的高斯模糊。处理边界的方式与cv::GaussianBlur不同,导致输出略有差异。

参数
_src类型为CV_8UC1的输入图像
_dst类型为 CV_8UC1 的输出图像
kernel_size滤波器内核大小。取值为 3、5、11 之一。
blur_border如果设置为 true,则通过 0 填充相邻值来模糊边界(常数边界的变体)。如果设置为 false,则忽略边界到半个内核宽度的部分(例如,在 3x3 的情况下为 1 个像素)。
另请参见
GaussianBlur

◆ houghLines()

void cv::fastcv::houghLines ( 输入数组 src,
输出数组 lines,
double threshold = 0.25 )

#include <opencv2/fastcv/hough.hpp>

执行霍夫线检测。

参数
src包含二进制轮廓的 8 位输入图像。宽度和步长应可被 8 整除。
lines包含检测到的线的输出数组,形式为 (x1, y1, x2, y2),其中所有数字都是 32 位浮点数。
threshold控制检测到的线的最小长度。值必须介于 0.0 和 1.0 之间。接近 1.0 的值会减少检测到的线条数量。接近 0.0 的值会检测到更多线条,但可能会有噪声。建议值为 0.25。

◆ IDCT()

void cv::fastcv::IDCT ( 输入数组 src,
输出数组 dst )

#include <opencv2/fastcv/ipptransform.hpp>

此函数对输入图像执行 8x8 逆离散余弦变换。在高通处理器上比cv::dct的逆变换情况执行速度更快。

参数
src类型为 CV_16SC1 的输入图像
dst类型为 CV_8UC1 的输出图像

◆ IFFT()

void cv::fastcv::IFFT ( 输入数组 src,
输出数组 dst )

#include <opencv2/fastcv/fft.hpp>

计算复值矩阵的一维或二维逆快速傅里叶变换。对于二维情况,输入和输出矩阵的宽度和高度必须是 2 的幂。对于一维情况,矩阵的高度必须为 1,而宽度必须是 2 的幂。

参数
src类型为 CV_32FC2 的输入数组,包含存储在单独通道中的 FFT 实部和虚部系数。对于二维情况,矩阵的维度必须是 2 的幂;对于一维情况,高度必须为 1,而宽度必须是 2 的幂。
dst计算出的类型为 CV_8U 的 IFFT 矩阵。该矩阵是实值矩阵,没有虚部。因此,dst 的维度为 (srcWidth, srcHeight)。

◆ matmuls8s32()

void cv::fastcv::matmuls8s32 ( 输入数组 src1,
输入数组 src2,
输出数组 dst )

#include <opencv2/fastcv/arithm.hpp>

两个int8_t类型矩阵的矩阵乘法使用有符号整型输入/输出,而cv::gemm使用浮点型输入/输出。matmuls8s32在高通处理器上提供了更高的速度。

参数
src1类型为 CV_8S 的第一个源矩阵
src2类型为 CV_8S 的第二个源矩阵
dst类型为 CV_32S 的结果矩阵

◆ meanShift()

int cv::fastcv::meanShift ( 输入数组 src,
矩形 & rect,
终止条件 termCrit )

#include <opencv2/fastcv/shift.hpp>

应用均值漂移过程并获取最终收敛位置。此函数将均值漂移过程应用于原始图像(通常是概率图像),并获取最终收敛位置。收敛位置搜索将停止,直到达到所需的精度或最大迭代次数。Moments在算法中使用的矩是使用浮点数计算的。此函数与cv::meanShift的计算结果并不完全一致,但在骁龙处理器上提供了改进的延迟。

参数
src8 位、32 位 int 或 32 位浮点灰度图像,通常是基于目标直方图计算的概率图像。
rect初始搜索窗口位置,也返回最终收敛的窗口位置。
termCrit用于结束均值漂移的准则,它包含两个终止准则:1)epsilon:所需精度;2)max_iter:最大迭代次数。
返回值
循环停止时的迭代次数。

◆ moments()

cv::Moments cv::fastcv::moments ( 输入数组 _src,
布尔值 binary )

#include <opencv2/fastcv/moments.hpp>

计算图像像素强度高达三阶的所有矩。结果以结构体cv::Moments返回。此函数cv::fastcv::moments()使用浮点计算来计算矩,而cv::moments()使用双精度浮点数计算矩。

参数
_src输入图像,类型为 CV_8UC1、CV_32SC1、CV_32FC1
binary如果为真,则假设图像为二值图像(黑色为 0x00,白色为 0xff),否则假设图像为灰度图像。

◆ remap()

void cv::fastcv::remap ( 输入数组 src,
输出数组 dst,
输入数组 map1,
输入数组 map2,
整数 interpolation,
整数 borderValue = 0 )

#include <opencv2/fastcv/remap.hpp>

将通用几何变换应用于灰度CV_8UC1图像。

参数
src第一个输入图像数据,类型为 CV_8UC1
dst输出图像数据,类型为 CV_8UC1
map1浮点型 CV_32FC1 矩阵,每个元素表示源图像中映射位置的列坐标
map2浮点型 CV_32FC1 矩阵,每个元素表示源图像中映射位置的行坐标。
interpolation仅支持 INTER_NEAREST 和 INTER_LINEAR 插值
borderValue常量像素值

◆ remapRGBA()

void cv::fastcv::remapRGBA ( 输入数组 src,
输出数组 dst,
输入数组 map1,
输入数组 map2,
整数 interpolation )

#include <opencv2/fastcv/remap.hpp>

使用双线性或最近邻插值将通用几何变换应用于4通道CV_8UC4图像。

参数
src第一个输入图像数据,类型为 CV_8UC4
dst输出图像数据,类型为 CV_8UC4
map1浮点型 CV_32FC1 矩阵,每个元素表示源图像中映射位置的列坐标
map2浮点型 CV_32FC1 矩阵,每个元素表示源图像中映射位置的行坐标。
interpolation仅支持 INTER_NEAREST 和 INTER_LINEAR 插值

◆ resizeDownBy2()

void cv::fastcv::resizeDownBy2 ( cv::InputArray _src,
cv::OutputArray _dst )

#include <opencv2/fastcv/scale.hpp>

通过平均每个2x2像素块来缩小图像。此函数与cv::resize的计算结果并不完全一致,但在高通处理器上提供了更快的执行时间。

参数
_src第一个输入图像数据,类型为 CV_8UC1,源图像高度必须是 2 的倍数
_dst输出图像数据,类型为 CV_8UC1

◆ resizeDownBy4()

void cv::fastcv::resizeDownBy4 ( cv::InputArray _src,
cv::OutputArray _dst )

#include <opencv2/fastcv/scale.hpp>

通过平均每个4x4像素块来缩小图像。此函数与cv::resize的计算结果并不完全一致,但在高通处理器上提供了更快的执行时间。

参数
_src第一个输入图像数据,类型为 CV_8UC1,源图像高度必须是 4 的倍数
_dst输出图像数据,类型为 CV_8UC1

◆ sepFilter2D()

void cv::fastcv::sepFilter2D ( 输入数组 _src,
输出数组 _dst,
整数 ddepth,
输入数组 _kernelX,
输入数组 _kernelY )

#include <opencv2/fastcv/blur.hpp>

使用可分离核的NxN相关运算。如果srcImg和dstImg指向相同的地址并且srcStride等于dstStride,则它将进行就地操作。忽略最多一半核宽度的边界。溢出处理方式与OpenCV不同,此函数将对中间结果和最终结果进行右移。

参数
_src类型为CV_8UC1的输入图像
_dst输出图像,类型为 CV_8UC1、CV_16SC1
ddepth输出图像的深度
_kernelXx 方向的滤波器内核数据
_kernelYY 方向的滤波器内核数据(对于 CV_16SC1,kernelX 和 kernelY 应该相同)
另请参见
sepFilter2D

◆ sobel()

void cv::fastcv::sobel ( 输入数组 _src,
输出数组 _dx,
输出数组 _dy,
整数 kernel_size,
整数 borderType,
整数 borderValue )

#include <opencv2/fastcv/edges.hpp>

从源亮度数据创建2D梯度图像,无需归一化。同时计算X方向一阶导数或Y方向一阶导数或两者。

参数
_src输入图像,类型为 CV_8UC1
_dx存储水平梯度的缓冲区。大小必须为 (dxyStride)*(height) 字节。如果为 NULL,则不会计算水平梯度。
_dy存储垂直梯度的缓冲区。大小必须为 (dxyStride)*(height) 字节。如果为 NULL,则不会计算垂直梯度。
kernel_sizeSobel 核大小,支持 3x3、5x5、7x7
borderType边界类型,支持 BORDER_CONSTANT、BORDER_REPLICATE
borderValue常量边界的边界值

◆ sobel3x3u8()

void cv::fastcv::sobel3x3u8 ( 输入数组 _src,
输出数组 _dst,
输出数组 _dsty = noArray(),
整数 ddepth = CV_8U,
布尔值 normalization = false )

#include <opencv2/fastcv/edges.hpp>

从源亮度数据创建2D梯度图像,无需归一化。此函数计算3x3邻域上的中心差分,然后用Sobel核卷积结果,忽略最多一半核宽度的边界。

参数
_src输入图像,类型为 CV_8UC1
_dst如果提供 _dsty,则为存储水平梯度的缓冲区;否则,为 |dx|+|dy| 的 8 位图像。缓冲区大小为 (srcwidth)*(srcheight) 字节
_dsty(可选)存储垂直梯度的缓冲区。大小必须为 (srcwidth)*(srcheight)。
ddepth输出图像的深度 CV_8SC1、CV_16SC1、CV_32FC1
normalization是否对结果进行归一化

◆ sobelPyramid()

void cv::fastcv::sobelPyramid ( InputArrayOfArrays pyr,
输出数组 dx,
输出数组 dy,
整数 outType = CV_8S )

#include <opencv2/fastcv/pyramid.hpp>

从图像金字塔创建梯度金字塔。

参数
pyr输入金字塔,包含单通道 8 位图像。仅支持连续图像。
dx与 pyr 大小相同的水平 Sobel 梯度金字塔
dy与 pyr 大小相同的垂直 Sobel 梯度金字塔
outType输出数据的类型,可以是 CV_8S、CV_16S 或 CV_32F

◆ thresholdRange()

void cv::fastcv::thresholdRange ( 输入数组 src,
输出数组 dst,
整数 lowThresh,
整数 highThresh,
整数 trueValue,
整数 falseValue )

#include <opencv2/fastcv/thresh.hpp>

基于一对阈值对灰度图像进行二值化处理。二值化图像将采用用户选择的两个值,此函数可在骁龙处理器上提高延迟性能。

参数
src8 位灰度图像
dst输出图像,大小和类型与输入图像相同,可以与输入图像相同
lowThresh二值化的下阈值
highThresh二值化的上阈值
trueValue如果源像素值在阈值范围内(包含阈值),则赋予目标像素的值
falseValue如果源像素值不在阈值范围内(不包含阈值),则赋予目标像素的值

◆ trackOpticalFlowLK() [1/2]

void cv::fastcv::trackOpticalFlowLK ( 输入数组 src,
输入数组 dst,
InputArrayOfArrays srcPyr,
InputArrayOfArrays dstPyr,
输入数组 ptsIn,
输出数组 ptsOut,
输入数组 ptsEst,
输出数组 statusVec,
cv::Size winSize = {7, 7},
cv::TermCriteria termCriteria = {cv::TermCriteria::MAX_ITER|cv::TermCriteria::EPS, 7, 0.03f *0.03f} )

#include <opencv2/fastcv/tracking.hpp>

使用Lucas-Kanade算法计算稀疏光流,接受8位无符号整数图像,在高通处理器上提供更快的执行时间。

参数
src输入单通道 8U 类型图像,初始运动帧
dst输入单通道 8U 类型图像,最终运动帧,应与初始帧具有相同的大小和步幅
srcPyr由初始运动帧构建的金字塔
dstPyr由最终运动帧构建的金字塔
ptsIn初始起始点亚像素坐标数组,应包含 32F 2D 元素
ptsOut计算出的最终点输出数组,应包含 32F 2D 元素
ptsEst最终点的估计输入数组,应包含 32F 2D 元素,可以为空
statusVec输出 int32 值数组,指示每个特征的状态,可以为空
winSize光流搜索窗口的大小。宽度和高度必须是奇数。建议值为 5、7 或 9
termCriteria包含最大迭代次数、最大 epsilon 和停止条件的终止条件

◆ trackOpticalFlowLK() [2/2]

void cv::fastcv::trackOpticalFlowLK ( 输入数组 src,
输入数组 dst,
InputArrayOfArrays srcPyr,
InputArrayOfArrays dstPyr,
InputArrayOfArrays srcDxPyr,
InputArrayOfArrays srcDyPyr,
输入数组 ptsIn,
输出数组 ptsOut,
输出数组 statusVec,
cv::Size winSize = {7, 7},
整数 maxIterations = 7 )

#include <opencv2/fastcv/tracking.hpp>

LK跟踪函数v1的重载。

参数
src输入单通道 8U 类型图像,初始运动帧
dst输入单通道 8U 类型图像,最终运动帧,应与初始帧具有相同的大小和步幅
srcPyr由初始运动帧构建的金字塔
dstPyr由最终运动帧构建的金字塔
srcDxPyrsrcPyr 的 X 方向 Sobel 导数金字塔
srcDyPyrsrcPyr 的 Y 方向 Sobel 导数金字塔
ptsIn初始起始点亚像素坐标数组,应包含 32F 2D 元素
ptsOut计算出的最终点输出数组,应包含 32F 2D 元素
statusVec输出 int32 值数组,指示每个特征的状态,可以为空
winSize光流搜索窗口的大小。宽度和高度必须是奇数。建议值为 5、7 或 9
maxIterations最大迭代次数

◆ warpPerspective2Plane()

void cv::fastcv::warpPerspective2Plane ( 输入数组 _src1,
输入数组 _src2,
输出数组 _dst1,
输出数组 _dst2,
输入数组 _M0,
尺寸 dsize )

#include <opencv2/fastcv/warp.hpp>

使用相同的变换对两幅图像进行透视变换。在适用情况下使用双线性插值。例如,同时变换灰度图像和alpha图像,或变换两个颜色通道。

参数
_src1第一个输入 8 位图像。缓冲区大小为 src1Stride*srcHeight 字节。
_src2第二个输入 8 位图像。缓冲区大小为 src2Stride*srcHeight 字节。
_dst1第一个扭曲输出图像(对应于 src1)。缓冲区大小为 dst1Stride*dstHeight 字节,类型为 CV_8UC1
_dst2第二个扭曲输出图像(对应于 src2)。缓冲区大小为 dst2Stride*dstHeight 字节,类型为 CV_8UC1
_M03x3 透视变换矩阵(逆映射)
dsize输出图像尺寸