OpenCv之滤波器

这篇具有很好参考价值的文章主要介绍了OpenCv之滤波器。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

一、卷积

 二、方盒滤波与均值滤波

三、高斯滤波

四、中值滤波

五、双边滤波


一、卷积

图像卷积就是卷积核在图像上按行华东遍历像素时不断的相乘求和的过程

OpenCv之滤波器,Opencv,opencv,人工智能,计算机视觉

 相关知识点:

  • 步长:就是卷积核在图像上移动的步幅.(为充分扫描图片,步长一般为1)
  • padding:指在图片周围填充的0的圈数
  • 卷积核大小:卷积核一般为奇数,比如3*3、5*5、7*7

OpenCv中卷积函数:

filter2D(src, ddepth, kernell dstl anchorl deltal borderType]]]])

  • ddepth是卷积之后图片的位深,即卷积之后图片的数据类型,一般设为-1,表示和原图类型一致。kernel是卷积核大小,用元组或者ndarray表示要求数据类型必须是float型
  • anchor锚点即卷积核的中心点是可选参数默认是(-1,-1)
  • delta 可选参数表示卷积之后额外加的一个值相当于线性方程中的偏差,默认是0
  • borderType边界类型一般不设

卷积案例代码如下:

import cv2
import numpy as np

img = cv2.imread('6.jpg')

# 相当于每个点都被平均了一下,所以图像变模糊了
# kernel = np.ones((5,5),np.float32) / 25

# 尝试其它卷积核,突出轮廓
kernel = np.array([[-1,-1,-1],[-1,8,-1],[-1,-1,-1]])

# 浮雕效果
kernel = np.array([[-2,1,0],[-1,1,1],[0,1,2]])

# 锐化
kernel = np.array([[0,-1,0],[-1,5,-1],[0,-1,0]])

# ddepth = -1表示图片的数据类型不变
dst = cv2.filter2D(img,-1,kernel)

# 图片展示
cv2.imshow('img',np.hstack((img,dst)))
cv2.waitKey(0)
cv2.destroyAllWindows()

运行结果如下:

OpenCv之滤波器,Opencv,opencv,人工智能,计算机视觉

 二、方盒滤波与均值滤波

OpenCv之滤波器,Opencv,opencv,人工智能,计算机视觉

方盒滤波案例代码如下:

import cv2
import numpy as np

# 读取图片
img = cv2.imread('6.jpg')

# 无需手动创建卷积核,只需要告诉方盒滤波,卷积核的大小是多少
dst = cv2.boxFilter(img,-1,(5,5),normalize=True)

cv2.imshow('img',np.hstack((img,dst)))

cv2.waitKey(0)
cv2.destroyAllWindows()

均值滤波案例代码如下:

import cv2
import numpy as np

# 读取图片
img = cv2.imread('6.jpg')
# 均值滤波无位深这个参数
dst = cv2.blur(img,(5,5))


cv2.waitKey(0)
cv2.destroyAllWindows()

三、高斯滤波

首先明白什么是高斯函数:

高斯函数是在符合高斯分布(也叫正态分布)的数据的概率密度函数 

OpenCv之滤波器,Opencv,opencv,人工智能,计算机视觉

 高斯函数的一般形式:

OpenCv之滤波器,Opencv,opencv,人工智能,计算机视觉

 参照函数:

OpenCv之滤波器,Opencv,opencv,人工智能,计算机视觉

案例代码如下:

import cv2
import numpy as np


img = cv2.imread('6.jpg')

# 高斯滤波
new_img = cv2.GaussianBlur(img,(5,5),sigmaX=10)

cv2.imshow('new_img',np.hstack((img,new_img)))
cv2.waitKey(0)
cv2.destroyAllWindows()

四、中值滤波

中值滤波的原理:假设有一个数组[1,5,5,6,7,8,9],取中间值(即中位数)作为卷积后的结果即可.中值滤波对胡椒噪音(也叫椒盐噪音)效果明显

案例代码如下:

import cv2
import numpy as np

img = cv2.imread('6.jpg')

# 注意这里的ksize就是一个整数
# 中值滤波
dst = cv2.medianBlur(img,5)

cv2.imshow('img',np.hstack((img,dst)))

cv2.waitKey(0)
cv2.destroyAllWindows()

五、双边滤波

双边滤波原理:双边滤波对于图像的边缘信息能过更好的保存。其原理为一个与空间举例相关的高斯函数与一个灰度距离相关的高斯函数相乘。

OpenCv之滤波器,Opencv,opencv,人工智能,计算机视觉

 双边滤波可以保留边缘,同时可以对边缘内的区域进行平滑处理

参照函数:

 文章来源地址https://www.toymoban.com/news/detail-576845.html

OpenCv之滤波器,Opencv,opencv,人工智能,计算机视觉

案例代码如下:

 

import cv2
import numpy as np

img = cv2.imread('6.jpg')

# sigmaColor为灰度距离
# sigmaSpace为空间距离
dst = cv2.bilateralFilter(img,7,sigmaColor=20,sigmaSpace=50)

cv2.imshow('img',np.hstack((img,dst)))

cv2.waitKey(0)
cv2.destroyAllWindows()

到了这里,关于OpenCv之滤波器的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • OpenCV(图像处理)-基于python-滤波器(低通、高通滤波器的使用方法)

    低通滤波 :低通滤波可以去除图像的噪音或平滑图像。 高通滤波 :可以帮助查找图像的边缘。 噪音 :即对一幅图像的产生负面效果,过暗或过亮的部分,一幅图像中,低于或高于某个像素点的值,都可以认为是噪音。 卷积核 :即用来滤波的矩阵,卷积核一般为奇数,如

    2024年02月09日
    浏览(66)
  • OpenCV(图像处理)-基于Oython-滤波器(低通、高通滤波器的使用方法)

    低通滤波 :低通滤波可以去除图像的噪音或平滑图像。 高通滤波 :可以帮助查找图像的边缘。 噪音 :即对一幅图像的产生负面效果,过暗或过亮的部分,一幅图像中,低于或高于某个像素点的值,都可以认为是噪音。 卷积核 :即用来滤波的矩阵,卷积核一般为奇数,如

    2024年02月09日
    浏览(55)
  • 《数字图像处理-OpenCV/Python》连载:空间滤波之高斯滤波器

    本书京东 优惠购书链接 https://item.jd.com/14098452.html 本书CSDN 独家连载专栏 https://blog.csdn.net/youcans/category_12418787.html 图像滤波是指在尽可能保留图像细节特征的条件下对目标图像的噪声进行抑制,是常用的图像处理方法。 空间滤波也称空间域滤波,滤波器规定了邻域形状与邻域

    2024年02月02日
    浏览(60)
  • openCV实战-系列教程5:边缘检测(Canny边缘检测/高斯滤波器/Sobel算子/非极大值抑制/线性插值法/梯度方向/双阈值检测 )、原理解析、源码解读 ?????OpenCV实战系列总目录

    打印一个图片可以做出一个函数: Canny是一个科学家在1986年写了一篇论文,所以用自己的名字来命名这个检测算法,Canny边缘检测算法这里写了5步流程,会用到之前《openCV实战-系列教程》的内容。  使用高斯滤波器,以平滑图像,滤除噪声。 计算图像中每个像素点的梯度强

    2024年02月11日
    浏览(53)
  • 人工智能-OpenCV+Python实现人脸识别(人脸检测)

    在OpenCV中使用Haar特征检测人脸,那么需要使用OpenCV提供的xml文件(级联表)在haarcascades目录下。这张级联表有一个训练好的AdaBoost训练集。首先要采用样本的Haar特征训练分类器,从而得到一个级联的AdaBoost分类器。Haar特征值反映了图像的灰度变化情况。例如:脸部的一些特征

    2024年02月06日
    浏览(104)
  • 使用C++设计滤波器(低通滤波器,高通滤波器,带通滤波器)

    以下是一个使用C++语言编写的基本低通滤波器的示例代码,它可以对输入信号进行滤波以降低高频成分: 在这个示例中,我们使用一个一阶滤波器来实现低通滤波器。该滤波器具有一个截止频率,所有高于该频率的信号成分都会被过滤掉。在构造函数中,我们根据采样率和截

    2024年02月11日
    浏览(41)
  • 人工智能算法工程师面试题——之OpenCV必背汇总(四)

    在OpenCV中,图像融合通常指的是将两个或更多图像以某种方式组合在一起,以创建一个新的图像。这个过程可以用于多种目的,比如艺术效果、图像修复或信息增强。实现图像融合的一种常见方法是通过加权求和,也就是每个像素位置上将不同图像的像素值按照一定的权重相

    2024年02月21日
    浏览(50)
  • python实现陷波滤波器、低通滤波器、高斯滤波器、巴特沃斯滤波器

    在一幅图像中,其低频成分对应者图像变化缓慢的部分,对应着图像大致的相貌和轮廓,而其高频成分则对应着图像变化剧烈的部分,对应着图像的细节(图像的噪声也属于高频成分)。 低频滤波器,顾名思义,就是过滤掉或者大幅度衰减图像的高频成分,让图像的低频成分

    2024年02月11日
    浏览(46)
  • 高通滤波器,低通滤波器

    1.高通滤波器是根据像素与邻近像素的亮度差值来提升该像素的亮度。   确实容易看出,第三种效果最好。 2. 使用medianBlur()作为模糊函数,它对去除数字化的视频噪声非常有效。  从BGR色彩空间转灰度色彩空间   使用Laplacian()作为边缘检测函数,它会产生明显的边缘线条 

    2024年02月14日
    浏览(38)
  • 【图像处理:频率域平滑与锐化】理想滤波器,巴特沃思滤波器,高斯滤波器

    本文主要介绍频率域滤波器,此处的频率域是基于傅立叶变换得出。 在一幅图像中, 低频对应图像变化缓慢的部分 ,即图像大致外观和轮廓。 高频部分对应图像变化剧烈的部分即图像细节 。低通滤波器的功能是让低频率通过而滤掉或衰减高频,其作用是过滤掉包含在高频

    2024年02月04日
    浏览(55)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包