OpenCV(4)--HPF高通滤波器


GitHub@ShaneHolmes

1. HPF高通滤波器

高通滤波器(HPF)是检测图像的某个区域,然后根据像素与周围像素的亮度差值来提升像素的亮度。通过高通滤波器进行滤波后,再和原图像叠加,可以增强图像中灰度级变化较快的部分,即锐化。
用于:边缘提取与增强。
高通滤波:高频信号可以通过,而低频信号不能通过。
低通滤波:低频信号可以通过,而高频信号不能通过。
安装scipy模块:
其他两个模块已经安装过了,不需要安装,如果你没有安装过,安装方法同安装scipy

pip install scipy

在这里插入图片描述
源代码:

import cv2
import numpy as np
from scipy import ndimage

kernel_3x3 = np.array([
    [-1, -1, -1],
    [-1, 8, -1],
    [-1, -1, -1],
])
kernel_5x5 = np.array([
    [-1, -1, -1, -1, -1],
    [-1, -1, 2, -1, -1],
    [-1, 2, 4, 2, -1],
    [-1, -1, 2, -1, -1],
    [-1, -1, -1, -1, -1],
])

img = cv2.imread('C://Users//47463//Desktop//2//putao2.JPG', flags=cv2.IMREAD_GRAYSCALE)#以灰度形式加载图片
#使用模板矩阵进行高通滤波
k3 = ndimage.convolve(img, kernel_3x3)
k5 = ndimage.convolve(img, kernel_5x5)
#使用OpenCV的高通滤波
GBlur = cv2.GaussianBlur(img, (11, 11), 0)
g_hpf = img - GBlur

cv2.imshow('img', img)
cv2.imshow('3x3', k3)
cv2.imshow('5x5', k5)
cv2.imshow('g_hpf', g_hpf)
cv2.waitKey(0)
cv2.destroyAllWindows()

在这里插入图片描述
代码解释:
NumPy(Numerical Python) 是 Python 语言的一个扩展程序库,支持大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库。
numpy教程
scipy:Scipy是一个用于数学、科学、工程领域的常用软件包,可以处理插值、积分、优化、图像处理、常微分方程数值解的求解、信号处理等问题。它用于有效计算Numpy矩阵,使Numpy和Scipy协同工作,高效解决问题。
相关博文:
scipy函数-blog
scipy函数-简书
  Scipy是由针对特定任务的子模块组成:

2. 低通滤波器

低通滤波器是像素与周围像素的亮度差值小于一个特定值时,平滑该像素的亮度。低通滤波器容许低频信号通过,减弱频率高于截止频率的信号的通过。
用于:去噪和模糊化。
更多文章:https://blog.csdn.net/qq_33208851/article/details/95237054

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值