引导滤波(Guided Filter)是一种图像处理方法,它可以在保持图像细节的同时,去除图像中的噪声和平滑图像。该方法通常用于图像降噪、图像增强、图像去模糊等领域,具有较好的效果和广泛的应用。
import cv2
import numpy as np
def guided_filter(input_image, guide_image, radius, eps):
# 转换图像类型为浮点数(0-1范围)
input_image = input_image.astype(np.float32) / 255.0
guide_image = guide_image.astype(np.float32) / 255.0
# 应用引导滤波
filtered_image = cv2.ximgproc.guidedFilter(guide_image, input_image, radius, eps)
# 将滤波结果转换回8位无符号整数类型(0-255范围)
filtered_image = (filtered_image * 255).astype(np.uint8)
return filtered_image
if __name__ == "__main__":
# 读取输入图像和引导图像
input_image = cv2.imread('/media/cs/28EAFD24EAFCEEC6/工具箱csdn/引导滤波/Entropy.png')
guide_image = cv2.imread('/media/cs/28EAFD24EAFCEEC6/工具箱csdn/引导滤波/Entropy.png', cv2.IMREAD_GRAYSCALE)
# 定义滤波器半径和eps值
radius = 5
eps = 0.01
# 应用引导滤波
filtered_image = guided_filter(input_image, guide_image, radius, eps)
# 显示滤波结果
cv2.imshow('Filtered Image', filtered_image)
cv2.waitKey(0)
cv2.destroyAllWindows()
# 保存滤波结果
cv2.imwrite('output_image.jpg', filtered_image)