我需要在深度图像上找到局部峰值,以生成C++中分水岭算法的标记。
我的Python实现使用 skimage.feature.peak_local_max 生成分水岭算法的标记。
找不到 skimage.feature.peak_local_max 函数的 C++实现或 C++模拟。
寻找矩阵局部最大值的一些算法也可能会有所帮助。
distance = scipy.ndimage.distance_transform_edt(image)
local_maxi = skimage.feature.peak_local_max(distance, indices=False, footprint=np.ones((3, 3)), labels=image)
markers = scipy.ndimage.label(local_maxi)[0]
labels = skimage.segmentation.watershed(-distance, markers, mask=image)
Example of the peak finder关于本地峰值查找器的C++实现有什么想法吗?谢谢!
最佳答案
如果您想要纯C++实现,建议您看一下ITK。 ITK的RegionalMaximalImageFilter
类将生成一个二进制图像,其前景表示局部最大值。它甚至适用于局部最大值恒定的“平坦”区域。此链接显示了一个示例:RegionalMaximal
原始图片:
本地千里马图片:
关于c++ - 什么是本地峰值检测器skimage.feature.peak_local_max的C++实现或类似物?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63434800/