📜  在Python中使用 OpenCV 实现 Photoshop 高通滤波器 (HPF)(1)

📅  最后修改于: 2023-12-03 15:23:26.001000             🧑  作者: Mango

在Python中使用 OpenCV 实现 Photoshop 高通滤波器 (HPF)

介绍

本文将介绍如何使用Python和OpenCV库来实现Photoshop中的高通滤波器,也称为“明暗边缘滤波器”。高通滤波器可以让图像中的边缘更加清晰明亮。

我们将会完成以下任务:

  1. 加载图像
  2. 将图像转换为灰度图像
  3. 应用高通滤波器
  4. 显示结果图像
加载图像

使用OpenCV的 imread 函数来加载图像。

import cv2

# 加载图像
img = cv2.imread('input.jpg')
将图像转换为灰度图像

为了应用高通滤波器,我们需要先将图像转换为灰度图像。将图像转换为灰度图像可以减少计算量,并且只需处理一个通道的数据。

import cv2

# 加载图像
img = cv2.imread('input.jpg')

# 转换为灰度图像
gray_img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
应用高通滤波器

下面的代码将应用高通滤波器,并产生一个带有清晰边缘的图像。

import cv2
import numpy as np

# 加载图像
img = cv2.imread('input.jpg')

# 转换为灰度图像
gray_img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)

# 定义高通滤波器内核
kernel_size = 3
kernel = np.array([[-1,-1,-1], [-1,9,-1], [-1,-1,-1]])

# 应用高通滤波器
filtered_img = cv2.filter2D(gray_img, -1, kernel)

显示结果图像

最后,我们将显示过滤后的图像。

import cv2
import numpy as np

# 加载图像
img = cv2.imread('input.jpg')

# 转换为灰度图像
gray_img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)

# 定义高通滤波器内核
kernel_size = 3
kernel = np.array([[-1,-1,-1], [-1,9,-1], [-1,-1,-1]])

# 应用高通滤波器
filtered_img = cv2.filter2D(gray_img, -1, kernel)

# 显示结果图像
cv2.imshow('High pass filter', filtered_img)
cv2.waitKey(0)
cv2.destroyAllWindows()

这将产生一个名为“High pass filter ”的窗口,其中包含过滤后的图像。您可以使用 cv2.imwrite() 函数将其保存到磁盘上。