iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >python怎么实现图像简单滤波
  • 323
分享到

python怎么实现图像简单滤波

2023-07-02 13:07:55 323人浏览 独家记忆

Python 官方文档:入门教程 => 点击学习

摘要

这篇文章主要介绍“python怎么实现图像简单滤波”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Python怎么实现图像简单滤波”文章能帮助大家解决问题。引言对图像进行滤波,可以有两种效果:一种是平

这篇文章主要介绍“python怎么实现图像简单滤波”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Python怎么实现图像简单滤波”文章能帮助大家解决问题。

引言

对图像进行滤波,可以有两种效果:一种是平滑滤波,用来抑制噪声;另一种是微分算子,可以用来检测边缘和特征提取。

skimage库中通过filters模块进行滤波操作。

1、sobel算子

sobel算子可用来检测边缘

函数格式为:skimage.filters.sobel(image, mask=None)

from skimage import data,filtersimport matplotlib.pyplot as pltimg = data.camera()edges = filters.sobel(img)plt.imshow(edges,plt.cm.gray)

python怎么实现图像简单滤波

2、roberts算子

roberts算子和sobel算子一样,用于检测边缘

调用格式也是一样的:

edges = filters.roberts(img)

3、scharr算子

功能同sobel,调用格式:

edges = filters.scharr(img)

4、prewitt算子

功能同sobel,调用格式:

edges = filters.prewitt(img)

5、canny算子

canny算子也是用于提取边缘特征,但它不是放在filters模块,而是放在feature模块

函数格式:skimage.feature.canny(image,sigma=1.0)

可以修改sigma的值来调整效果

from skimage import data,filters,featureimport matplotlib.pyplot as pltimg = data.camera()edges1 = feature.canny(img)   #sigma=1edges2 = feature.canny(img,sigma=3)   #sigma=3plt.figure('canny',figsize=(8,8))plt.subplot(121)plt.imshow(edges1,plt.cm.gray)  plt.subplot(122)plt.imshow(edges2,plt.cm.gray)plt.show()

python怎么实现图像简单滤波

从结果可以看出,sigma越小,边缘线条越细小。

6、gabor滤波

gabor滤波可用来进行边缘检测和纹理特征提取。

函数调用格式:skimage.filters.gabor_filter(image, frequency)

通过修改frequency值来调整滤波效果,返回一对边缘结果,一个是用真实滤波核的滤波结果,一个是想象的滤波核的滤波结果。

python怎么实现图像简单滤波

from skimage import data,filtersimport matplotlib.pyplot as pltimg = data.camera()filt_real, filt_imag = filters.gabor_filter(img,frequency=0.6)   plt.figure('gabor',figsize=(8,8))plt.subplot(121)plt.title('filt_real')plt.imshow(filt_real,plt.cm.gray)  plt.subplot(122)plt.title('filt-imag')plt.imshow(filt_imag,plt.cm.gray)plt.show()

python怎么实现图像简单滤波

以上为frequency=0.6的结果图。

python怎么实现图像简单滤波

以上为frequency=0.1的结果图

7、gaussian滤波

多维的滤波器,是一种平滑滤波,可以消除高斯噪声。

调用函数为:skimage.filters.gaussian_filter(image, sigma)

通过调节sigma的值来调整滤波效果

from skimage import data,filtersimport matplotlib.pyplot as pltimg = data.astronaut()edges1 = filters.gaussian_filter(img,sigma=0.4)   #sigma=0.4edges2 = filters.gaussian_filter(img,sigma=5)   #sigma=5plt.figure('gaussian',figsize=(8,8))plt.subplot(121)plt.imshow(edges1,plt.cm.gray)  plt.subplot(122)plt.imshow(edges2,plt.cm.gray)plt.show()

python怎么实现图像简单滤波

可见sigma越大,过滤后的图像越模糊

8.median

中值滤波,一种平滑滤波,可以消除噪声。

需要用skimage.morphology模块来设置滤波器的形状。

from skimage import data,filtersimport matplotlib.pyplot as pltfrom skimage.morphology import diskimg = data.camera()edges1 = filters.median(img,disk(5))edges2= filters.median(img,disk(9))plt.figure('median',figsize=(8,8))plt.subplot(121)plt.imshow(edges1,plt.cm.gray)  plt.subplot(122)plt.imshow(edges2,plt.cm.gray)plt.show()

python怎么实现图像简单滤波

从结果可以看出,滤波器越大,图像越模糊。

9、水平、垂直边缘检测

上边所举的例子都是进行全部边缘检测,有些时候我们只需要检测水平边缘,或垂直边缘,就可用下面的方法。

水平边缘检测:sobel_h, prewitt_h, scharr_h

垂直边缘检测: sobel_v, prewitt_v, scharr_v

from skimage import data,filtersimport matplotlib.pyplot as pltimg = data.camera()edges1 = filters.sobel_h(img)  edges2 = filters.sobel_v(img) plt.figure('sobel_v_h',figsize=(8,8))plt.subplot(121)plt.imshow(edges1,plt.cm.gray)  plt.subplot(122)plt.imshow(edges2,plt.cm.gray)plt.show()

python怎么实现图像简单滤波

上边左图为检测出的水平边缘,右图为检测出的垂直边缘。

10、交叉边缘检测

可使用Roberts的十字交叉核来进行过滤,以达到检测交叉边缘的目的。这些交叉边缘实际上是梯度在某个方向上的一个分量。

其中一个核:

0   1
-1   0

对应的函数:

roberts_neg_diag(image)

 例:

from skimage import data,filtersimport matplotlib.pyplot as pltimg =data.camera()dst =filters.roberts_neg_diag(img) plt.figure('filters',figsize=(8,8))plt.subplot(121)plt.title('origin image')plt.imshow(img,plt.cm.gray)plt.subplot(122)plt.title('filted image')plt.imshow(dst,plt.cm.gray)

python怎么实现图像简单滤波

另外一个核:

1   0
0  -1

对应函数为:

roberts_pos_diag(image)

from skimage import data,filtersimport matplotlib.pyplot as pltimg =data.camera()dst =filters.roberts_pos_diag(img) plt.figure('filters',figsize=(8,8))plt.subplot(121)plt.title('origin image')plt.imshow(img,plt.cm.gray)plt.subplot(122)plt.title('filted image')plt.imshow(dst,plt.cm.gray)

python怎么实现图像简单滤波

关于“python怎么实现图像简单滤波”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注编程网Python频道,小编每天都会为大家更新不同的知识点。

--结束END--

本文标题: python怎么实现图像简单滤波

本文链接: https://www.lsjlt.com/news/342225.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • python怎么实现图像简单滤波
    这篇文章主要介绍“python怎么实现图像简单滤波”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“python怎么实现图像简单滤波”文章能帮助大家解决问题。引言对图像进行滤波,可以有两种效果:一种是平...
    99+
    2023-07-02
  • python数字图像处理之图像简单滤波实现
    目录引言1、sobel算子2、roberts算子3、scharr算子4、prewitt算子5、canny算子6、gabor滤波7、gaussian滤波8、median9、水平、垂直边...
    99+
    2024-04-02
  • OpenCV实现图像滤波之双边滤波
    本文实例为大家分享了opencv实现双边滤波的具体代码,供大家参考,具体内容如下 1、2D卷积 #!/usr/bin/env python3 # -*- coding: utf-...
    99+
    2024-04-02
  • python opencv图像的高通滤波和低通滤波怎么实现
    这篇文章主要介绍“python opencv图像的高通滤波和低通滤波怎么实现”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“python opencv图像的高通滤波和低通滤波怎么实...
    99+
    2023-07-02
  • Python+OpenCV 实现简单的高斯滤波(推荐)
    基本原理讲解:高斯模糊的算法 高斯核函数的编写:构建权重矩阵,采用高斯二维分布函数的形式进行处理。需要注意的是,这里我没有特判当sigma = 0的时候的情况。 即是实现: 1)权重...
    99+
    2024-04-02
  • Python怎么实现低通滤波器模糊图像功能
    使用低通滤波器模糊图像0. 前言低通滤波器 (Low Pass Filter, LPF) 过滤了图像中的高频部分,并仅允许低频部分通过。因此,在图像上应用 LPF 会删除图像中的细节/边缘和噪声/离群值,此过程也称为图像模糊(或平滑),图像...
    99+
    2023-05-14
    Python
  • OpenCV-Python实现图像梯度与Sobel滤波器
    目录图像梯度Sobel滤波器图像梯度 图像梯度计算的是图像变化的速度。对于图像的边缘部分,其灰度值变化较大,梯度值也较大;相反,对于图像中比较平滑的部分,其灰度值变化较小,相应的梯度...
    99+
    2024-04-02
  • matlab图像滤波实例分析
    这篇“matlab图像滤波实例分析”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“matlab图像滤波实例分析”文章吧。mat...
    99+
    2023-07-05
  • Python 实现中值滤波、均值滤波
    Python图形界面实现中值滤波、均值滤波 红包: Lena椒盐噪声图片: # -*- coding: utf-8 -*- """ Created on Sat Oct 14 22:16:47 2017 @author: D...
    99+
    2023-01-31
    中值 均值 Python
  • Python如何实现低通滤波器模糊图像功能
    这篇“Python如何实现低通滤波器模糊图像功能”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Python如何实现低通滤波器...
    99+
    2023-07-06
  • python opencv图像的高通滤波和低通滤波的示例代码
    目录前言完整代码低通滤波高通滤波结果展示低通滤波高通滤波前言 上一章我们说明了如何将图像机娘傅里叶变换,将图像由时域变换成频域,并将低频移动至图像中心。那么将低频移动中心后,就可以将...
    99+
    2024-04-02
  • Python图像处理:频域滤波降噪和图像增强
    图像处理已经成为我们日常生活中不可或缺的一部分,涉及到社交媒体和医学成像等各个领域。通过数码相机或卫星照片和医学扫描等其他来源获得的图像可能需要预处理以消除或增强噪声。频域滤波是一种可行的解决方案,它可以在增强图像锐化的同时消除噪声。快速傅...
    99+
    2023-05-14
    Python 图像处理 数学技术
  • OpenCV学习之图像加噪与滤波的实现详解
    目录一、实验内容二、实验环境和配置三、实验原理及操作1. 添加噪声2.噪声二值化3. 滤波处理四、实验结果2.椒盐噪声二值图与白噪声二值图3.椒盐噪声处理图经处理后图像4.白噪声处理...
    99+
    2023-02-16
    OpenCV图像加噪 滤波 OpenCV图像加噪 OpenCV图像滤波 OpenCV图像
  • Python实现简单图像缩放与旋转
    目录1. 图像缩放1.2. 使用命令1.2. 原理介绍1.3. 方法比较2. 旋转2.1. 使用命令2.2. 实验效果总结1. 图像缩放 1.2. 使用命令 import cv2 #...
    99+
    2024-04-02
  • Java OpenCV中怎么自定义图像滤波算子
    今天小编给大家分享一下Java OpenCV中怎么自定义图像滤波算子的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。...
    99+
    2023-06-29
  • python实现对图片进行均值滤波、中值滤波、高斯滤波处理及其原理和特点
    1.高斯滤波         1)原理:对图像邻域内像素进行平滑时,邻域内不同位置的像素被赋予不同的权值。         2)特点:对图像进行平滑的同时,同时能够更多的保留图像的总体灰度分布特征。         3)代码 import ...
    99+
    2023-10-18
    python 开发语言
  • OpenCV(图像处理)-基于python-滤波器(低通、高通滤波器的使用方法)
    1.概念介绍2. 图像卷积filter2D() 3. 低通滤波器3.1 方盒滤波和均值滤波boxFilter()blur() 3.2 高斯滤波(高斯噪音)3.3 中值滤波(胡椒...
    99+
    2023-09-06
    opencv 图像处理 计算机视觉
  • Python基本形态学滤波怎么实现
    最基础的形态学操作有四个,分别是腐蚀、膨胀、开计算和闭计算,`scipy.ndimage分别实现了二值数组和灰度数组的这四种运算二值灰度binary_erosiongrey_erosion腐蚀binary_dilationgrey_dila...
    99+
    2023-05-22
    Python
  • OpenCV学习方框滤波实现图像处理代码示例
    目录一、方框滤波二、C++代码三、python代码四、结果展示1、原始图像2、归一化3、不归一化4、平方和求均值一、方框滤波    方框滤波是均值滤波的一种形...
    99+
    2024-04-02
  • python怎么实现CSF地面点滤波算法
    这篇文章主要讲解了“python怎么实现CSF地面点滤波算法”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“python怎么实现CSF地面点滤波算法”吧!目录一、算法原理二、读取las点云三、...
    99+
    2023-06-20
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作