- 博客(10)
- 收藏
- 关注
原创 Opencv之图像边缘检测:4.Canny边缘检测(cv2.Canny)
Canny边缘检测是一种使用多级边缘检测算法检测边缘的方法。1986年,John F.Canny发表了著名的论文A Computational Approach to Edge Detection,在该论文中详述了如何进行边缘检测。4.1 原理介绍Canny边缘检测分为如下几个步骤。步骤1:去噪。噪声会影响边缘检测的准确性,因此首先要将噪声过滤掉。由于图像边缘非常容易受到噪声的干扰,因此为了避免检测到错误的边缘信息,通常 需要对图像进行滤波以去...
2022-04-05 11:11:19
8095
原创 Opencv之图像边缘检测:3.Laplacian算子(cv2.Laplacian)
Laplacian(拉普拉斯)算子是一种二阶导数算子,其具有旋转不变性,可以满足不同 方向的图像边缘锐化(边缘检测)的要求。
2022-03-29 11:28:27
25493
原创 Opencv之图像边缘检测:2.Scharr算子(cv2.Scharr)
2.1 原理介绍:在离散的空间上,有很多方法可以用来计算近似导数,在使用3×3的Sobel算子时,可能计算结果并不太精准。OpenCV提供了Scharr算子,该算子具有和Sobel算子同样的速 度,且精度更高。可以将Scharr算子看作对Sobel算子的改进,其核通常为:2.2 函数语法:OpenCV提供了函数cv2.Scharr()来计算Scharr算子,其语法格式如下:dst=cv2.Scharr(src,dde...
2022-03-25 19:03:28
7315
原创 Opencv之图像边缘检测:1.Sobel算子(cv2.Sobel)
图像梯度计算的是图像变化的速度。对于图像的边缘部分,其灰度值变化较大,梯度值也较大;相反,对于图像中比较平滑的部分,其灰度值变化较小,相应的梯度值也较小。一般情况下,图像梯度计算的是图像的边缘信息。 严格来讲,图像梯度计算需要求导数,但是图像梯度一般通过计算像素值的差来得到梯度的近似值(近似导数值)。将上述运算关系进一步优化,可以得到更复杂的边缘信息。1.1 原理介绍Sobel 算子是一种离散的微分算子,该算子结合了高斯平滑和微分求导运算。该算子利用局部差分寻...
2022-03-20 11:45:02
20420
1
原创 Opencv之图像滤波:6.双边滤波(cv2.bilateralFilter)
前面我们介绍的滤波方法都会对图像造成模糊,使得边缘信息变弱或者消失,因此需要一种能够对图像边缘信息进行保留的滤波算法,双边滤波是综合考虑空间信息和色彩信息的滤波方式,在滤波过程中能够有效地保护 图像内的边缘信息。6.1 原理介绍之前介绍的滤波处理过程单纯地考虑空间信息,造成了边界模糊和部分信息的丢失。 双边滤波在计算某一个像素点的新值时,不仅考虑距离信息(距离越远,权重越小),还考虑色彩信息(色彩差别越大,权重越小)。双边滤波综合考虑距离和色彩的权重结果,既能够有...
2022-03-14 21:40:50
29064
3
原创 Opencv之图像滤波:5.中值滤波(cv2.medianBlur)
之前介绍的均值滤波、方框滤波、高斯滤波,都是线性滤波方式。由于线性滤波的结果是所有像素值的线性组合,因此含有噪声的像素也会被考虑进去,噪声不会被消除,而是以更柔和的方式存在。这时使用非线性滤波效果可能会更好。中值滤波与前面介绍的滤波方式不同,不再采用加权求均值的方式计算滤波结果。它用邻域内所有像素值的中间值来替代当前像素点的像素值。5.1 原理介绍中值滤波会取当前像素点及其周围临近像素点(一共有奇数个像素点)的像素值,将这些像素值排序,然后将位于中间位置的像素值作为当前像素点的像素值。 对如下矩..
2022-03-14 19:19:59
49901
1
原创 Opencv之图像滤波:4.高斯滤波(cv2.GaussianBlur)
在进行均值滤波和方框滤波时,其邻域内每个像素的权重是相等的。在高斯滤波中,会将中心点的权重值加大,远离中心点的权重值减小,在此基础上计算邻域内各个像素值不同权重的和。4.1 原理介绍在高斯滤波中,卷积核中的值不再都是1。如下图所示在实际使用中,高斯滤波使用的可能是不同大小的卷积核,核的宽度和高度可以不相同,但是它们都必须是奇数,可以根据使用需求选定合适的卷积核。每一种尺寸的卷积核都可以有多种不同形式的权重比例。在实际计算中,卷积核是归一化处理的...
2022-03-11 19:15:19
28416
原创 Opencv之图像滤波:3.方框滤波(cv2.boxFilter)
OpenCV还提供了方框滤波方式,与均值滤波的不同在于,方框滤波不会计算像素均 值。在均值滤波中,滤波结果的像素值是任意一个点的邻域平均值,等于各邻域像素值之 和除以邻域面积。而在方框滤波中,可以自由选择是否对均值滤波的结果进行归一化,即 可以自由选择滤波结果是邻域像素值之和的平均值,还是邻域像素值之和。3.1 原理介绍以5×5的邻域为例,在进行方框滤波时,如果计算的是邻域像素值的均值,则使用的卷积核为:...
2022-03-09 21:01:53
11761
原创 Opencv之图像滤波:2.均值滤波(cv2.blur)
介绍完图像卷积之后,我们开始学习各种滤波方法,今天来学习均值滤波。2.1.原理介绍在进行均值滤波时,首先要考虑需要对周围多少个像素点取平均值。通常情况下,我们会以当前像素点为中心,对行数和列数相等的一块区域内的所有像素点的像素值求平均。例:对于矩阵:对所选定的3×3矩阵,选定中心像素点,对这个矩阵进行运算中心点新值 = ( 1 +8 + 15 + 2 + 9 + 16 + 3 + 10 + 17)/9= 9对于边缘像素点,如图所示:...
2022-03-01 22:23:41
23922
2
原创 Opencv之图像滤波:1.图像卷积(cv2.filter2D)
1.图像卷积在OpenCV中,允许用户自定义卷积核实现卷积操作,使用自定义卷积核实现卷积操作的函数是cv2.filter2D(),其语法格式为:dst=cv2.filter2D(src,ddepth,kernel,anchor,delta,borderType) 式中: ● dst是返回值,表示进行方框滤波后得到的处理结果。● src 是需要处理的图像,即原始图像。它能够有任意数量的通道,并能对各个通道独立...
2022-02-27 20:16:22
11719
2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人