opencv-python中的cv2.filter()函数随笔

有时候我们想要处理的图像中噪音太多,影响到我们的识别判断,我们就需要对图像进行模糊处理,使图像变得平滑。
而opencv-python提供给我们cv2.filter()函数来对图像进行2D卷积,我们可以使用自定义的卷积核来对图像进行卷积操作。

构造函数:
dst=cv.filter2D(src, ddepth, kernel[, dst[, anchor[, delta[, borderType]]]])
参数解释
  • src:待处理图像
  • ddepth:目标图像深度,如果值为-1则表示目标图像输出为与原图像深度相同。
  • kernel:自定义的卷积核,float32型浮点矩阵。
  • anchor 内核的锚点,指示内核中过滤点的相对位置;锚应位于内核中;默认值(-1,-1)表示锚位于内核中心。
  • detal 在将它们存储在dst中之前,将可选值添加到已过滤的像素中。类似于偏置。
  • borderType 像素外推法,参见BorderTypes

图像内核是一个小矩阵,在Photoshop或Gimp中找到的效果都可以实现,例如模糊,锐化,轮廓或浮雕。它们还用于机器学习中的“特征提取”,这是一种用于确定图像最重要部分的技术。在这种情况下,该过程更普遍地称为“卷积”
有许多特殊的内核,一 一记录下来。
这些效果唯一的差别就是他们的卷积核不同
在这里插入图片描述

模糊(blur)

0.06250.1250.0625
0.1250.250.125
0.06250.1250.125
import numpy as np
import cv2

img=cv2.imread('D://zopencv//ball.jpg')
kernel=np.array( (  [0.0625, 0.125, 0.0625],
       			    [0.125, 0.25, 0.125],
                    [0.0625, 0.125, 0.0625]),dtype="float32")
dst=cv2.filter2D(img,-1,kernel)
mask=cv2.resize(dst,None,fx=0.5,fy=0.5,interpolation=cv2.INTER_AREA)
cv2.imshow('image',mask)
cv2.waitKey(0)
cv2.destroyAllWindows()

在这里插入图片描述

sobel

-1-2-1
000
121
kernel=np.array( (  [-1,-2,-1],
       				 [0,0,0],
      			     [1,2,1]),dtype="float32")

在这里插入图片描述

浮雕(emboss)

-2-10
-111
012
在这里插入代码片

在这里插入图片描述

大纲(outline)

轮廓内核/边缘内核,强调边缘

-1-1-1
-18-1
-1-1-1
在这里插入代码片

在这里插入图片描述

锐化(sharpen)

0-10
-15-1
0-10
kernel=np.array( (  [0,-1,0],
   			        [-1,5,-1],
     			    [0,-1,0]),dtype="float32")

在这里插入代码片

拉普拉斯算子(laplacian operator)

用于边缘检测,或者图像中的模糊处理。

010
1-41
010
kernel=np.array( (  [0,1,0],
                    [1,-4,1],
                    [0,1,0]),dtype="float32")

在这里插入图片描述

  • 2
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值