一、卷积
1、卷积概念
(1)在OpenCV中,卷积是一种常用的图像处理操作,用于图像滤波、特征提取等任务。它基于滑动窗口的概念,通过将一个小的核Kenel(也称为滤波器)与图像进行逐像素的乘法和求和运算来实现。
— 卷积是图像处理中一个操作,是kernel在图像的每个像素上的操作。
— Kernel本质上一个固定大小的矩阵数组,其中心点称为锚点(anchor point)
(2)卷积操作可以理解为在图像上滑动一个小的核,并将核的每个元素与对应位置的图像像素值相乘,然后将所有乘积结果相加得到输出图像的对应像素值。这个过程可以简单地表示为:
output(x, y) = sum(kernel(i, j) * input(x+i, y+j))
其中,
output(x, y)
是输出图像的像素值,kernel(i, j)
是核的元素值,input(x+i, y+j)
是输入图像的像素值。
(3)卷积操作在图像处理中有多种应用,其中最常见的是图像滤波。通过选择不同的核,可以实现不同的滤波效果,例如平滑滤波、边缘检测等。卷积操作还可以用于图像特征提取,例如使用卷积神经网络(CNN)进行图像分类、目标检测等任务。
在OpenCV中,可以使用cv::filter2D
函数来进行卷积操作。该函数接受输入图像、核以及输出图像作为参数,并将卷积结果存储在输出图像中。
2、卷积如何工作
把kernel放到像素数组之上,求锚点周围覆盖的像素乘积之和(包括锚点)&