作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个名为“cube”的数据立方体。我需要将每个二维切片与高斯核进行卷积。
但是,使用以下代码,它使用标准化高斯核,它会稀释每个切片中较弱的像素。
有没有办法将每个像素高斯除以“max(Gaussian)”,以便每个像素相对于像素强度进行卷积?
import numpy as np
from astropy.convolution import convolve, Gaussian2DKernel
std = 2
gauss_kernel = Gaussian2DKernel(std)
for i in range(len(cube[:,0,0])):
cube[i,:,:] = convolve(cube[i,:,:], gauss_kernel/np.max(gauss_kernel))
最佳答案
您发布的解决方案已经说明了如何与峰值归一化高斯进行卷积。从您的评论来看,听起来您希望您的“峰值”不受周围数据点的影响。严格来说,这是不可能的 - 卷积意味着每个像素都会“扩散”。
但是,您可能正在谈论 astropy 实现的归一化卷积(请参阅 http://docs.astropy.org/en/stable/convolution/index.html )。只要周围的像素设置为 NAN,它们就不会对其邻居做出任何贡献。因此,如果您有一个稀疏的数组,只有几个像素想要模糊到周围的“空”像素中,只需将“空”像素设置为 NaN 即可。请参阅此示例:http://docs.astropy.org/en/stable/convolution/index.html#using-astropy-s-convolution-to-replace-bad-data
关于python - 数据立方体的高斯卷积,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47289559/
我是一名优秀的程序员,十分优秀!