数学之路-python计算实战(19)-机器视觉-卷积滤波

本文介绍了如何使用Python进行卷积滤波操作,应用于机器视觉领域。filter2D函数用于对图像进行任意线性滤波,支持在图像边界处采用不同方式进行像素值的插值处理。
摘要由CSDN通过智能技术生成

filter2D

Convolves an image with the kernel.

C++:  void  filter2D (InputArray  src, OutputArray  dst, int  ddepth, InputArray kernel, Point  anchor=Point(-1,-1), double  delta=0, int  borderType=BORDER_DEFAULT  )
Python:   cv2. filter2D (src, ddepth, kernel [, dst [, anchor [, delta [, borderType ] ] ] ] ) → dst
C:  void  cvFilter2D (const CvArr*  src, CvArr*  dst, const CvMat*  kernel, CvPoint anchor=cvPoint(-1,-1)  )
Python:   cv. Filter2D (src, dst, kernel, anchor=(-1, -1) ) → None
Parameters:
  • src – input image.
  • dst – output image of the same size and the same number of channels as src.
  • ddepth –
    desired depth of the destination image; if it is negative, it will be the same as  src.depth(); the following combinations of src.depth() and  ddepth are supported:
    • src.depth() = CV_8Uddepth = -1/CV_16S/CV_32F/CV_64F
    • src.depth() = CV_16U/CV_16Sddepth = -1/CV_32F/CV_64F
    • src.depth() = CV_32Fddepth = -1/CV_32F/CV_64F
    • src.depth() = CV_64Fddepth = -1/CV_64F

    when ddepth=-1, the output image will have the same depth as the source.

  • kernel – convolution kernel (or rather a correlation kernel), a single-channel floating point matrix; if you want to apply different kernels to different channels, split the image into separate color planes using split() and process them individually.
  • anchor – anchor of the kernel that indicates the relative position of a filtered point within the kernel; the anchor should lie within the kernel; default value (-1,-1) means that the anchor is at the kernel center.
  • delta – optional value added to the filtered pixels before storing them in dst.
  • borderType – pixel extrapolation method (seeborderInterpolate() for details).

The function applies an arbitrary linear filter to an image. In-place operation is supported. When the aperture is partially outside the image, the function interpolates outlier pixel values according to the specified border mode.

# -*- coding: utf-8 -*-   
#卷积滤波
#code:myhaspl@myhaspl.com
import cv2
import numpy as np
fn="test2.jpg"
myimg=cv2.imread(fn)
img=cv2.cvtColor(myimg,cv2.COLOR_BGR2GRAY)
myh=np.array([[0,1,0],[1,-4,1],[0,1,0]])
jgimg=cv2.filter2D(img,-1,myh)
cv2.imshow('src',img)
cv2.imshow('dst',jgimg)
cv2.waitKey()
cv2.destroyAllWindows()

本博客所有内容是原创,如果转载请注明来源

http://blog.csdn.net/myhaspl/



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值