python 为什么ndimage.maximum_filter不能正常工作

pkln4tw6  于 2023-10-14  发布在  Python
关注(0)|答案(1)|浏览(114)

我有一个问题,我需要检测图像的局部最大值。我使用ndimag.maximum_filter来检测局部最大值。下面是一个示例代码:

image = np.array([1,0,6,1,8,9,6,4])    

neigh = [1,0,1]

filtered_image = ndimage.maximum_filter(image, footprint=neigh, mode='constant', cval=np.inf)
print(f"filtered_image: {filtered_image}")

该代码在图像上应用大小为3的1D滤镜。这段代码给出了以下结果:
filtered_image:[0 6 1 8 9 8 9 6]
数组的第一个元素是0,通常它应该是np.inf。我不知道为什么会这样。

ttygqcqt

ttygqcqt1#

这是一个小错误,int图像与cval=inf
np.array-> intfloat或...,取决于arg的类型)

import numpy as np
from scipy import ndimage 

image = np.array([1,0,6,1,8,9,6,4], dtype=float )
neigh = [1,0,1]
filtered_image = ndimage.maximum_filter( image, footprint=neigh,
    mode='constant', cval=np.inf )
print(f"filtered_image: {filtered_image}")  # [inf 6 1 8 9 8 9 inf]

相关问题