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()

输入图像为热红外图像:

输出为高通滤波后图像

猜你喜欢

转载自blog.csdn.net/zhuisaozhang1292/article/details/80569969