详解用Python在图像上应用高斯滤波器

下面就来讲解用Python在图像上应用高斯滤波器的完整攻略。

什么是高斯滤波器?

高斯滤波器是一种线性平滑滤波器,它可以对噪声信号进行平滑处理。高斯滤波器的核心思想是使用高斯函数作为卷积核,对图像中的每个像素进行加权平均处理。通过调整高斯函数的标准差,可以控制滤波器的大小。

用Python实现高斯滤波器的步骤

下面将介绍用Python实现高斯滤波器的步骤:

  1. 导入相关的库:
import cv2
import numpy as np
from matplotlib import pyplot as plt
  1. 加载图像:可以使用cv2.imread()函数加载图像。
img = cv2.imread("lena.jpg", 0)
  1. 定义高斯卷积核:
kernel_size = (5, 5)
sigma = 1.5
kernel = np.zeros(kernel_size)
sum = 0
for i in range(kernel_size[0]):
    for j in range(kernel_size[1]):
        kernel[i, j] = np.exp(-(np.square(i - kernel_size[0] // 2) + np.square(j - kernel_size[1] // 2)) / (2 * np.square(sigma)))
        sum += kernel[i, j]
kernel /= sum
  1. 对图像进行高斯滤波:
filtered_img = cv2.filter2D(img, -1, kernel)
  1. 显示原图和处理后的图像:
plt.subplot(121), plt.imshow(img, cmap="gray"), plt.title("Original")
plt.subplot(122), plt.imshow(filtered_img, cmap="gray"), plt.title("Filtered")
plt.show()

示例

下面给出两个示例。

示例1

原始图像:

详解用Python在图像上应用高斯滤波器

代码:

import cv2
import numpy as np
from matplotlib import pyplot as plt

img = cv2.imread("test1.png", 0)

kernel_size = (7, 7)
sigma = 1.5
kernel = np.zeros(kernel_size)
sum = 0
for i in range(kernel_size[0]):
    for j in range(kernel_size[1]):
        kernel[i, j] = np.exp(-(np.square(i - kernel_size[0] // 2) + np.square(j - kernel_size[1] // 2)) / (2 * np.square(sigma)))
        sum += kernel[i, j]
kernel /= sum

filtered_img = cv2.filter2D(img, -1, kernel)

plt.subplot(121), plt.imshow(img, cmap="gray"), plt.title("Original")
plt.subplot(122), plt.imshow(filtered_img, cmap="gray"), plt.title("Filtered")
plt.show()

处理后的图像:

详解用Python在图像上应用高斯滤波器

示例2

原始图像:

详解用Python在图像上应用高斯滤波器

代码:

import cv2
import numpy as np
from matplotlib import pyplot as plt

img = cv2.imread("test2.jpg")

kernel_size = (11, 11)
sigma = 2
kernel = np.zeros(kernel_size)
sum = 0
for i in range(kernel_size[0]):
    for j in range(kernel_size[1]):
        kernel[i, j] = np.exp(-(np.square(i - kernel_size[0] // 2) + np.square(j - kernel_size[1] // 2)) / (2 * np.square(sigma)))
        sum += kernel[i, j]
kernel /= sum

filtered_img = cv2.filter2D(img, -1, kernel)

plt.subplot(121), plt.imshow(cv2.cvtColor(img, cv2.COLOR_BGR2RGB)), plt.title("Original")
plt.subplot(122), plt.imshow(cv2.cvtColor(filtered_img, cv2.COLOR_BGR2RGB)), plt.title("Filtered")
plt.show()

处理后的图像:

详解用Python在图像上应用高斯滤波器

以上就是用Python在图像上应用高斯滤波器的完整攻略和两个示例的说明,希望能对您有所帮助。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:详解用Python在图像上应用高斯滤波器 - Python技术站

(1)
上一篇 2023年3月25日
下一篇 2023年3月25日

相关文章

  • Python调用钉钉自定义机器人的实现

    下面我就为大家详细讲解如何使用Python调用钉钉自定义机器人,并提供两条示例说明。 1. 准备工作 钉钉账号,拥有创建自定义机器人的权限; Python的requests库,可使用pip进行安装; 2. 获取自定义机器人Webhook地址 在钉钉中创建一个自定义机器人,然后获取其Webhook地址。 具体步骤: 进入钉钉工作台,点击自定义机器人,进入自定义…

    python 2023年5月23日
    00
  • Pycharm中的Python Console用法解读

    PyCharm中的Python Console用法解读 什么是Python Console? Python Console是PyCharm IDE的一个交互式编程环境。它定义为一个交互式的REPL(Read-Eval-Print Loop),它可以帮助您更快地调试和测试您的Python代码。 如何访问Python Console? 在PyCharm IDE中…

    python 2023年5月18日
    00
  • python 命名规范知识点汇总

    Python 命名规范知识点汇总 在 Python 编程中,良好的命名规范不仅可以提高代码的可读性,还能帮助程序员更好地组织和管理代码。本文将对 Python 中的命名规范进行汇总和讲解,希望能为 Python 程序员提供一些指导。 变量命名 命名应当富有意义,并能够清晰表达变量所代表的事物或值。变量名建议使用英文单词或缩写,不要使用中文拼音或不明确的缩写。…

    python 2023年6月5日
    00
  • Python之os操作方法(详解)

    下面就来详细讲解一下“Python之os操作方法(详解)”的完整攻略。 一、什么是os模块 os 模块提供了一种方便的跨平台使用操作系统功能的方法。该模块提供了不同的函数来执行各种任务,包括文件管理、进程管理、环境变量管理和软件包管理等等。以下是该模块中一些常用函数的用法。 二、os常用函数说明 1. os.getcwd() 返回当前工作目录。 import…

    python 2023年5月30日
    00
  • python实现微信自动回复功能

    下面就给大家详细讲解一下“Python实现微信自动回复功能”的完整攻略。 简介 微信自动回复功能是一项很有用的工具,可以让我们快速回复一些常见的问题以及提高我们的聊天效率。今天我们将使用Python编写一个自动回复脚本实现微信自动回复功能。 准备工作 在开始之前,需要安装一些Python库和其他工具,具体如下: wxpy库:一个Python微信个人号API的…

    python 2023年5月19日
    00
  • Python对excel文档的操作方法详解

    下面就为你讲解《Python对Excel文档的操作方法详解》的完整实例教程。 概述 本篇教程主要讲解如何使用Python对Excel文档进行读写和操作。Python有多个用于读写Excel文档的库,包括xlrd、openpyxl、pandas等,但是本篇教程主要介绍openpyxl库的使用方法。 准备工作 在使用openpyxl之前,我们需要先安装该库。可以…

    python 2023年5月13日
    00
  • win7+Python3.5下scrapy的安装方法

    下面我将详细介绍“win7+Python3.5下scrapy的安装方法”。 1.安装Python3.5 首先,我们需要在电脑上安装Python3.5。你可以到Python的官网 https://www.python.org/downloads/release/python-350/ 下载Python3.5的安装包,并按照提示进行安装。 2.安装scrapy依…

    python 2023年5月13日
    00
  • 14个Python处理Excel的常用操作分享

    关于这篇“14个Python处理Excel的常用操作分享”的完整实例教程,我将为您详细讲解其内容和案例。整个教程中包含了14个Python处理Excel的常用操作,如读取Excel表格、写入Excel表格、格式化单元格、合并单元格、筛选数据等。接下来将从以下几个方面逐一介绍: 安装所需模块:在使用Python处理Excel文件前,必须先安装相应的模块。本篇教…

    python 2023年5月13日
    00
合作推广
合作推广
分享本页
返回顶部