gpt4 book ai didi

python - 用于骨架化的倒角距离变换

转载 作者:行者123 更新时间:2023-11-30 22:24:54 26 4
gpt4 key购买 nike

Python中是否有实现使用倒角距离变换计算图​​像骨架(骨架化)的函数或库?

以下链接是倒角距离变换的示例: http://www.inf.u-szeged.hu/~palagyi/skel/chamfer34.gif

谢谢

最佳答案

你的问题表述不清楚。倒角距离是两条曲线或两个二值图像之间的距离

假设您有两条曲线。

  • 曲线A
  • 曲线B

计算倒角变换的最简单方法是将曲线 A 转换为 Distance Transform在图像中。然后使用这些距离计算曲线 A 中每个点与曲线 B 中各点之间的最近距离。

换句话说,两条曲线或二值图像之间最近点距离的总和。

示例代码

import numpy as np
import cv2

# for Chamfer Distance between two curves
p_a - n x 2 numpy array
p_b - n x 2 numpy array
image_shape - (h, w) tuple
def chamfer(p_a, p_b, image_shape):
mask = np.ones(image_shape[:2], dtype=np.uint8) * 255
mask[p_a[:, 1].astype(int), p_a[:, 0].astype(int)] = 0
dist = cv2.distanceTransform(mask, cv2.DIST_L2, 3, dstType=cv2.CV_32F)
return dist[p_b[:, 1].astype(int), p_b[:, 0].astype(int)].sum()

chamfer_dist = 0.5 * (chamfer(p_a, p_b, image_shape) + chamfer(p_b, p_a, image_shape)

另一个选择是使用 Hausdorff Distance这在某些方面被认为更好

关于python - 用于骨架化的倒角距离变换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47703773/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com