📅  最后修改于: 2023-12-03 15:23:26.001000             🧑  作者: Mango
本文将介绍如何使用Python和OpenCV库来实现Photoshop中的高通滤波器,也称为“明暗边缘滤波器”。高通滤波器可以让图像中的边缘更加清晰明亮。
我们将会完成以下任务:
使用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()
函数将其保存到磁盘上。