什么是本地峰值检测器 skimage.feature.peak_local_max 的 C++ 实现或类似物?
What is a C++ implementation or analogue of the local peak detector skimage.feature.peak_local_max?
我需要在深度图像上找到局部峰值,以便为 C++ 中的分水岭算法生成标记。
我的 Python 实现使用 skimage.feature.peak_local_max 为分水岭算法生成标记。
找不到 C++ 实现 或 C++ 类似物 skimage.feature.peak_local_max函数。
一些用于查找矩阵局部最大值的算法也可能有所帮助。
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
class 将生成一个二值图像,前景代表局部最大值。它甚至适用于局部最大值恒定的“平坦”区域。 link 显示了一个示例:RegionalMaximal
原图:
局部最大值图像:
我需要在深度图像上找到局部峰值,以便为 C++ 中的分水岭算法生成标记。
我的 Python 实现使用 skimage.feature.peak_local_max 为分水岭算法生成标记。
找不到 C++ 实现 或 C++ 类似物 skimage.feature.peak_local_max函数。
一些用于查找矩阵局部最大值的算法也可能有所帮助。
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
class 将生成一个二值图像,前景代表局部最大值。它甚至适用于局部最大值恒定的“平坦”区域。 link 显示了一个示例:RegionalMaximal
原图:
局部最大值图像: