标签:相关性 char turn 默认值 note 线性 描述 for 内核
使用自定义内核对图像进行卷积。该功能将任意线性滤波器应用于图像。支持就地操作。当光圈部分位于图像外部时,该功能会根据指定的边框模式插入异常像素值。
函数原型:
dst=cv.filter2D(src, ddepth, kernel[, dst[, anchor[, delta[, borderType]]]])
参数:
参数 | 描述 |
src | 原图像 |
dst | 目标图像,与原图像尺寸和通过数相同 |
ddepth | 目标图像的所需深度 |
kernel | 卷积核(或相当于相关核),单通道浮点矩阵;如果要将不同的内核应用于不同的通道,请使用拆分将图像拆分为单独的颜色平面,然后单独处理它们。 |
anchor | 内核的锚点,指示内核中过滤点的相对位置;锚应位于内核中;默认值(-1,-1)表示锚位于内核中心。 |
detal | 在将它们存储在dst中之前,将可选值添加到已过滤的像素中。类似于偏置。 |
borderType | 像素外推法,参见BorderTypes |
改函数实际计算的是相关性,而不是卷积
$$\texttt{dst} (x,y) = \sum _{ \stackrel{0\leq x‘ < \texttt{kernel.cols},}{0\leq y‘ < \texttt{kernel.rows}} } \texttt{kernel} (x‘,y‘)* \texttt{src} (x+x‘- \texttt{anchor.x} ,y+y‘- \texttt{anchor.y} )$$
在内核足够大(~11x11或者更大)的时候,该函数使用DFT算法,对于小内核则直接计算。
也可见,anchor相当于坐标轴平移。
其中ddepth表示目标图像的所需深度,它包含有关图像中存储的数据类型的信息,可以是unsigned char(CV_8U),signed char(CV_8S),unsigned short(CV_16U)等等...
Input depth (src.depth()) | Output depth (ddepth) |
---|---|
CV_8U | -1/CV_16S/CV_32F/CV_64F |
CV_16U/CV_16S | -1/CV_32F/CV_64F |
CV_32F | -1/CV_32F/CV_64F |
CV_64F | -1/CV_64F |
Note:当ddepth=-1时,表示输出图像与原图像有相同的深度。
参考链接:
1、Depth combination https://docs.opencv.org/master/d4/d86/group__imgproc__filter.html#filter_depths
2、
标签:相关性 char turn 默认值 note 线性 描述 for 内核
原文地址:https://www.cnblogs.com/lfri/p/10599420.html