计算无下采样的细节系数

2024-10-01 13:28:40 发布

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

小波变换允许我们计算信号或图像的细节系数。它还在每个分解级别对图像进行下采样。你知道吗

我想计算细节系数而不需要下采样。我想用低通滤波器G来提取细节系数,就像正交镜像滤波器减去下采样。但是,我只在1D中有这个过滤器:[-1/sqrt(2), 1/sqrt(2)]

据我所知,我可以先将G应用于图像的行,然后应用于列。如何在Numpy中执行此乘法?我的图像大小为768x768。你知道吗


Tags: 图像numpy过滤器镜像信号sqrt级别细节
1条回答
网友
1楼 · 发布于 2024-10-01 13:28:40

如果我正确理解你的问题,那么我们可以利用广播来做到这一点,但在此之前,我们必须平铺我们的初始过滤器,以匹配我们的形象的一个维度。幸运的是,这里的图像是正方形的。所以,很多事情变得简单了:

In [70]: filter_ = np.array([-1/np.sqrt(2), 1/np.sqrt(2)])

In [71]: filter_
Out[71]: array([-0.70710678,  0.70710678])

# tile the initial array to match the dimensions of image
In [72]: filter_1d = np.tile(filter_, 768//2)

In [73]: filter_1d.shape
Out[73]: (768,)

In [74]: img = np.random.random_sample((768, 768))

# apply the filter on the image
In [76]: filtered = np.multiply(img, filter_1d)

In [77]: filtered.shape
Out[77]: (768, 768)

相关问题 更多 >