将图像分为高频和低频

2024-05-17 13:50:30 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个由高频和低频信息组成的图像(见附件),我想将高频像素的值设置为0,同时保持低频信息的像素值

例如,在下图中,皮肤的像素将保持不变,但帽子上的细节将设置为0

我知道我可以使用低通或高通滤波器,通过将图像转换为频率,然后用傅里叶变换返回,但我不希望删除频率。相反,我想改变像素值的高频发生。我听说使用双正交小波变换可能实现这一点,但我不熟悉如何在Python中实现这一点

顺便说一下,我的目标是实现技术{a1}(参见3.2.1(c)和“频率特性”)

Lena 我迄今为止的进展总结在以下代码中:

import pywt
import numpy as np
from skimage.io import imread

image = imread('lena.png')

coeffs = pywt.wavedec2(image, 'bior3.5', level=2)

plt.imshow(abs(np.mean(coeffs[1], axis=0)))

我的假设是,两级分解应该给我留下高频和低频,看起来第一层coeffs[1]内的阵列代表不同的高频角度。这让我通过平均值将它们组合起来,并绘制出图像中所有高频区域的地图

High frequency Lena


Tags: 图像imageimport信息附件np像素细节