opencv 滤波使用

高通滤波器(HPF):是检测图像的某个区域,然后根据与图像周围像素的亮度差值来提升(boost)该像素的亮度的滤波器

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('IR005557.jpg',0)
#img = cv2.imread('123.jpg',0)
k3 = ndimage.convolve(img, kernel_3x3)
k5 = ndimage.convolve(img, kernel_5x5)

blurred = cv2.GaussianBlur(img,(11,11),0) #第三个参数表示高斯核函数在X方向的的标准偏差。
g_hpf = img - blurred
cv2.imshow("3x3",k3)
cv2.imshow('5x5',k5)
cv2.imshow('g_hpf',g_hpf)
cv2.waitKey()
cv2.destroyAllWindows()

输入图像为热红外图像:

输出为高通滤波后图像

### OpenCV滤波技术概述 OpenCV 是一种功能强大且广泛使用的计算机视觉库,其中包含了丰富的图像处理工具和技术。对于图像滤波而言,它支持多种类型的滤波器来实现不同的效果,比如降噪、平滑以及边缘增强等[^1]。 #### 常见的滤波方法及其使用说明 以下是几种常用滤波方法的具体介绍: ##### 1. 平均模糊 (Averaging Blur) 平均模糊通过对指定区域内的像素取平均值来进行平滑处理。这种方法可以有效减少高斯白噪声的影响。 ```python import cv2 import numpy as np # 加载图片 image = cv2.imread('example.jpg') # 应用平均模糊 blurred_image = cv2.blur(image, (5, 5)) # 显示结果 cv2.imshow('Original Image', image) cv2.imshow('Blurred Image', blurred_image) cv2.waitKey(0) cv2.destroyAllWindows() ``` 此代码片段展示了如何加载一张图片并对其进行简单的平均模糊操作[(ksize)]参数定义了卷积核大小,通常是一个奇数正方形矩阵[^1]。 ##### 2. 高斯模糊 (Gaussian Blur) 相比普通的平均模糊,高斯模糊采用加权的方式计算邻域内各点贡献度,从而获得更自然的结果。 ```python gaussian_blur = cv2.GaussianBlur(image, (5, 5), 0) ``` 这里 `(5, 5)` 表示的是高斯核尺寸,而 `sigmaX=0` 则让函数自动决定标准差[^3]。 ##### 3. 中值滤波 (Median Filtering) 中值滤波特别适合于消除椒盐噪音而不影响其他部分太多细节损失的情况。 ```python median_filtered = cv2.medianBlur(image, 5) ``` 注意这里的第二个参数也应设为奇数值代表窗口半径[^2]。 ##### 4. 双边滤波 (Bilateral Filter) 双边滤波能够在保持边界清晰的同时达到去噪目的,因此非常适合应用于保留物体轮廓的任务当中。 ```python bilateral_filterd = cv2.bilateralFilter(image, d=9, sigmaColor=75, sigmaSpace=75) ``` 以上就是一些基础却非常实用的OpenCV内置滤镜例子[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值