![]() |
OpenCV 4.10.0
开源计算机视觉库
|
本节中描述的函数和类用于对二维图像执行各种线性或非线性滤波操作。
类 | |
| 类 | cv::cuda::Filter |
| 所有 CUDA 滤波器的通用接口:更多... | |
函数 | |
| Ptr< Filter > | cv::cuda::createBoxFilter (int srcType, int dstType, Size ksize, Point anchor=Point(-1, -1), int borderMode=BORDER_DEFAULT, Scalar borderVal=Scalar::all(0)) |
| 创建一个归一化的二维盒式滤波器。 | |
| Ptr< Filter > | cv::cuda::createBoxMaxFilter (int srcType, Size ksize, Point anchor=Point(-1, -1), int borderMode=BORDER_DEFAULT, Scalar borderVal=Scalar::all(0)) |
| 创建最大值滤波器。 | |
| Ptr< Filter > | cv::cuda::createBoxMinFilter (int srcType, Size ksize, Point anchor=Point(-1, -1), int borderMode=BORDER_DEFAULT, Scalar borderVal=Scalar::all(0)) |
| 创建最小值滤波器。 | |
| Ptr< Filter > | cv::cuda::createColumnSumFilter (int srcType, int dstType, int ksize, int anchor=-1, int borderMode=BORDER_DEFAULT, Scalar borderVal=Scalar::all(0)) |
| 创建一个垂直一维盒式滤波器。 | |
| Ptr< Filter > | cv::cuda::createDerivFilter (int srcType, int dstType, int dx, int dy, int ksize, bool normalize=false, double scale=1, int rowBorderMode=BORDER_DEFAULT, int columnBorderMode=-1) |
| 创建一个广义的 Deriv 算子。 | |
| Ptr< Filter > | cv::cuda::createGaussianFilter (int srcType, int dstType, Size ksize, double sigma1, double sigma2=0, int rowBorderMode=BORDER_DEFAULT, int columnBorderMode=-1) |
| 创建一个高斯滤波器。 | |
| Ptr< Filter > | cv::cuda::createLaplacianFilter (int srcType, int dstType, int ksize=1, double scale=1, int borderMode=BORDER_DEFAULT, Scalar borderVal=Scalar::all(0)) |
| 创建一个拉普拉斯算子。 | |
| Ptr< Filter > | cv::cuda::createLinearFilter (int srcType, int dstType, InputArray kernel, Point anchor=Point(-1, -1), int borderMode=BORDER_DEFAULT, Scalar borderVal=Scalar::all(0)) |
| 创建一个不可分离的线性二维滤波器。 | |
| Ptr< Filter > | cv::cuda::createMorphologyFilter (int op, int srcType, InputArray kernel, Point anchor=Point(-1, -1), int iterations=1) |
| 创建一个二维形态学滤波器。 | |
| Ptr< Filter > | cv::cuda::createRowSumFilter (int srcType, int dstType, int ksize, int anchor=-1, int borderMode=BORDER_DEFAULT, Scalar borderVal=Scalar::all(0)) |
| 创建一个水平一维盒式滤波器。 | |
| Ptr< Filter > | cv::cuda::createScharrFilter (int srcType, int dstType, int dx, int dy, double scale=1, int rowBorderMode=BORDER_DEFAULT, int columnBorderMode=-1) |
| 创建一个垂直或水平 Scharr 算子。 | |
| Ptr< Filter > | cv::cuda::createSeparableLinearFilter (int srcType, int dstType, InputArray rowKernel, InputArray columnKernel, Point anchor=Point(-1,-1), int rowBorderMode=BORDER_DEFAULT, int columnBorderMode=-1) |
| 创建一个可分离线性滤波器。 | |
| Ptr< Filter > | cv::cuda::createSobelFilter (int srcType, int dstType, int dx, int dy, int ksize=3, double scale=1, int rowBorderMode=BORDER_DEFAULT, int columnBorderMode=-1) |
| 创建一个 Sobel 算子。 | |
| Ptr< Filter > cv::cuda::createBoxFilter | ( | int | srcType, |
| int | dstType, | ||
| Size | ksize, | ||
| Point | anchor = Point(-1, -1), |
||
| int | borderMode = BORDER_DEFAULT, |
||
| Scalar | borderVal = Scalar::all(0) |
||
| ) |
#include <opencv2/cudafilters.hpp>
创建一个归一化的二维盒式滤波器。
| srcType | 输入图像类型。目前仅支持 CV_8UC1、CV_8UC4 和 CV_32FC1。 |
| dstType | 输出图像类型。目前仅支持与 src 相同的类型。 |
| ksize | 内核大小。 |
| anchor | 锚点。默认值 Point(-1, -1) 表示锚点位于内核中心。 |
| borderMode | 像素外推方法。有关详细信息,请参阅 borderInterpolate 。 |
| borderVal | 默认边框值。 |
| Ptr< Filter > cv::cuda::createBoxMaxFilter | ( | int | srcType, |
| Size | ksize, | ||
| Point | anchor = Point(-1, -1), |
||
| int | borderMode = BORDER_DEFAULT, |
||
| Scalar | borderVal = Scalar::all(0) |
||
| ) |
#include <opencv2/cudafilters.hpp>
创建最大值滤波器。
| srcType | 输入/输出图像类型。仅支持 CV_8UC1 和 CV_8UC4。 |
| ksize | 内核大小。 |
| anchor | 锚点。默认值 (-1) 表示锚点位于内核中心。 |
| borderMode | 像素外推方法。有关详细信息,请参阅 borderInterpolate 。 |
| borderVal | 默认边框值。 |
| Ptr< Filter > cv::cuda::createBoxMinFilter | ( | int | srcType, |
| Size | ksize, | ||
| Point | anchor = Point(-1, -1), |
||
| int | borderMode = BORDER_DEFAULT, |
||
| Scalar | borderVal = Scalar::all(0) |
||
| ) |
#include <opencv2/cudafilters.hpp>
创建最小值滤波器。
| srcType | 输入/输出图像类型。仅支持 CV_8UC1 和 CV_8UC4。 |
| ksize | 内核大小。 |
| anchor | 锚点。默认值 (-1) 表示锚点位于内核中心。 |
| borderMode | 像素外推方法。有关详细信息,请参阅 borderInterpolate 。 |
| borderVal | 默认边框值。 |
| Ptr< Filter > cv::cuda::createColumnSumFilter | ( | int | srcType, |
| int | dstType, | ||
| int | ksize, | ||
| int | anchor = -1, |
||
| int | borderMode = BORDER_DEFAULT, |
||
| Scalar | borderVal = Scalar::all(0) |
||
| ) |
#include <opencv2/cudafilters.hpp>
创建一个垂直一维盒式滤波器。
| srcType | 输入图像类型。目前仅支持 CV_8UC1 类型。 |
| dstType | 输出图像类型。目前仅支持 CV_32FC1 类型。 |
| ksize | 内核大小。 |
| anchor | 锚点。默认值 (-1) 表示锚点位于内核中心。 |
| borderMode | 像素外推方法。有关详细信息,请参阅 borderInterpolate 。 |
| borderVal | 默认边框值。 |
| Ptr< Filter > cv::cuda::createDerivFilter | ( | int | srcType, |
| int | dstType, | ||
| int | dx, | ||
| int | dy, | ||
| int | ksize, | ||
| bool | normalize = false, |
||
| double | scale = 1, |
||
| int | rowBorderMode = BORDER_DEFAULT, |
||
| int | columnBorderMode = -1 |
||
| ) |
#include <opencv2/cudafilters.hpp>
创建一个广义的 Deriv 算子。
| srcType | 源图像类型。 |
| dstType | 目标数组类型。 |
| dx | 相对于 x 的导数阶数。 |
| dy | 相对于 y 的导数阶数。 |
| ksize | 孔径大小。有关详细信息,请参阅 getDerivKernels 。 |
| normalize | 指示是否对滤波器系数进行归一化(缩小)的标志。有关详细信息,请参阅 getDerivKernels 。 |
| scale | 计算出的导数值的可选缩放因子。默认情况下,不应用缩放。有关详细信息,请参阅 getDerivKernels 。 |
| rowBorderMode | 垂直方向上的像素外推方法。有关详细信息,请参阅 borderInterpolate 。 |
| columnBorderMode | 水平方向上的像素外推方法。 |
| Ptr< Filter > cv::cuda::createGaussianFilter | ( | int | srcType, |
| int | dstType, | ||
| Size | ksize, | ||
| double | sigma1, | ||
| double | sigma2 = 0, |
||
| int | rowBorderMode = BORDER_DEFAULT, |
||
| int | columnBorderMode = -1 |
||
| ) |
#include <opencv2/cudafilters.hpp>
创建一个高斯滤波器。
| srcType | 源图像类型。 |
| dstType | 目标数组类型。 |
| ksize | 孔径大小。有关详细信息,请参阅 getGaussianKernel 。 |
| sigma1 | 水平方向上的高斯 sigma。有关详细信息,请参阅 getGaussianKernel 。 |
| sigma2 | 垂直方向上的高斯 sigma。如果为 0,则 \(\texttt{sigma2}\leftarrow\texttt{sigma1}\) 。 |
| rowBorderMode | 垂直方向上的像素外推方法。有关详细信息,请参阅 borderInterpolate 。 |
| columnBorderMode | 水平方向上的像素外推方法。 |
| Ptr< Filter > cv::cuda::createLaplacianFilter | ( | int | srcType, |
| int | dstType, | ||
| int | ksize = 1, |
||
| double | scale = 1, |
||
| int | borderMode = BORDER_DEFAULT, |
||
| Scalar | borderVal = Scalar::all(0) |
||
| ) |
#include <opencv2/cudafilters.hpp>
创建一个拉普拉斯算子。
| srcType | 输入图像类型。支持 CV_8U、CV_16U 和 CV_32F 单通道和四通道图像。 |
| dstType | 输出图像类型。目前仅支持与 src 相同的类型。 |
| ksize | 用于计算二阶导数滤波器的孔径大小(请参阅 getDerivKernels)。它必须为正且奇数。仅支持 ksize = 1 和 ksize = 3。 |
| scale | 计算出的拉普拉斯值的可选缩放因子。默认情况下,不应用缩放(请参阅 getDerivKernels)。 |
| borderMode | 像素外推方法。有关详细信息,请参阅 borderInterpolate 。 |
| borderVal | 默认边框值。 |
| Ptr< Filter > cv | ( | int | srcType, |
| int | dstType, | ||
| InputArray | 内核, | ||
| Point | anchor = Point(-1, -1), |
||
| int | borderMode = BORDER_DEFAULT, |
||
| Scalar | borderVal = Scalar::all(0) |
||
| ) |
#include <opencv2/cudafilters.hpp>
创建一个不可分离的线性二维滤波器。
| srcType | 输入图像类型。支持 CV_8U、CV_16U 和 CV_32F 单通道和四通道图像。 |
| dstType | 输出图像类型。目前仅支持与 src 相同的类型。 |
| 内核 | 滤波器系数的二维数组。 |
| anchor | 锚点。默认值 Point(-1, -1) 表示锚点位于内核中心。 |
| borderMode | 像素外推方法。有关详细信息,请参阅 borderInterpolate 。 |
| borderVal | 默认边框值。 |
| Ptr< Filter > cv::cuda::createMorphologyFilter | ( | int | op, |
| int | srcType, | ||
| InputArray | 内核, | ||
| Point | anchor = Point(-1, -1), |
||
| int | iterations = 1 |
||
| ) |
#include <opencv2/cudafilters.hpp>
创建一个二维形态学滤波器。
| op | 形态学操作的类型。以下类型是可能的
|
| srcType | 输入/输出图像类型。仅支持 CV_8UC1、CV_8UC4、CV_32FC1 和 CV_32FC4。 |
| 内核 | 用于形态学操作的二维 8 位结构元素。 |
| anchor | 结构元素中的锚点位置。负值表示锚点位于中心。 |
| iterations | 要应用的腐蚀和膨胀次数。 |
| Ptr< Filter > cv::cuda::createRowSumFilter | ( | int | srcType, |
| int | dstType, | ||
| int | ksize, | ||
| int | anchor = -1, |
||
| int | borderMode = BORDER_DEFAULT, |
||
| Scalar | borderVal = Scalar::all(0) |
||
| ) |
#include <opencv2/cudafilters.hpp>
创建一个水平一维盒式滤波器。
| srcType | 输入图像类型。目前仅支持 CV_8UC1 类型。 |
| dstType | 输出图像类型。目前仅支持 CV_32FC1 类型。 |
| ksize | 内核大小。 |
| anchor | 锚点。默认值 (-1) 表示锚点位于内核中心。 |
| borderMode | 像素外推方法。有关详细信息,请参阅 borderInterpolate 。 |
| borderVal | 默认边框值。 |
| Ptr< Filter > cv::cuda::createScharrFilter | ( | int | srcType, |
| int | dstType, | ||
| int | dx, | ||
| int | dy, | ||
| double | scale = 1, |
||
| int | rowBorderMode = BORDER_DEFAULT, |
||
| int | columnBorderMode = -1 |
||
| ) |
#include <opencv2/cudafilters.hpp>
创建一个垂直或水平 Scharr 算子。
| srcType | 源图像类型。 |
| dstType | 目标数组类型。 |
| dx | x 方向导数的阶数。 |
| dy | y 方向导数的阶数。 |
| scale | 计算出的导数值的可选缩放因子。默认情况下,不应用任何缩放。有关详细信息,请参阅 getDerivKernels。 |
| rowBorderMode | 垂直方向上的像素外推方法。有关详细信息,请参阅 borderInterpolate 。 |
| columnBorderMode | 水平方向上的像素外推方法。 |
| Ptr< Filter > cv::cuda::createSeparableLinearFilter | ( | int | srcType, |
| int | dstType, | ||
| InputArray | rowKernel, | ||
| InputArray | columnKernel, | ||
| Point | anchor = Point(-1,-1), |
||
| int | rowBorderMode = BORDER_DEFAULT, |
||
| int | columnBorderMode = -1 |
||
| ) |
#include <opencv2/cudafilters.hpp>
创建一个可分离线性滤波器。
| srcType | 源数组类型。 |
| dstType | 目标数组类型。 |
| rowKernel | 水平滤波器系数。支持大小 <= 32 的内核。 |
| columnKernel | 垂直滤波器系数。支持大小 <= 32 的内核。 |
| anchor | 内核中的锚点位置。负值表示锚点位于光圈中心。 |
| rowBorderMode | 垂直方向的像素外推方法 有关详细信息,请参阅 borderInterpolate。 |
| columnBorderMode | 水平方向上的像素外推方法。 |
| Ptr< Filter > cv::cuda::createSobelFilter | ( | int | srcType, |
| int | dstType, | ||
| int | dx, | ||
| int | dy, | ||
| int | ksize = 3, |
||
| double | scale = 1, |
||
| int | rowBorderMode = BORDER_DEFAULT, |
||
| int | columnBorderMode = -1 |
||
| ) |
#include <opencv2/cudafilters.hpp>
创建一个 Sobel 算子。
| srcType | 源图像类型。 |
| dstType | 目标数组类型。 |
| dx | 相对于 x 的导数阶数。 |
| dy | 相对于 y 的导数阶数。 |
| ksize | 扩展 Sobel 内核的大小。可能的值为 1、3、5 或 7。 |
| scale | 计算出的导数值的可选缩放因子。默认情况下,不应用缩放。有关详细信息,请参阅 getDerivKernels 。 |
| rowBorderMode | 垂直方向上的像素外推方法。有关详细信息,请参阅 borderInterpolate 。 |
| columnBorderMode | 水平方向上的像素外推方法。 |
1.9.8