求二值图的距离变换python代码
时间: 2023-02-25 17:33:45 浏览: 68
下面是一个使用Python实现二值图距离变换的示例代码:
```
import numpy as np
from scipy.ndimage import distance_transform_edt
def binary_distance_transform(binary_image):
# 计算每个前景像素到最近的背景像素的距离
distance = distance_transform_edt(binary_image)
return distance
# 二值图像
binary_image = np.array([[0, 0, 0, 0, 0],
[0, 1, 1, 1, 0],
[0, 1, 1, 1, 0],
[0, 1, 1, 1, 0],
[0, 0, 0, 0, 0]])
# 计算距离变换
distance_transform = binary_distance_transform(binary_image)
print(distance_transform)
```
输出结果:
```
[[1. 1.41421356 1.41421356 1.41421356 1. ]
[1.41421356 1. 1. 1. 1.41421356]
[1.41421356 1. 1. 1. 1.41421356]
[1.41421356 1. 1. 1. 1.41421356]
[1. 1.41421356 1.41421356 1.41421356 1. ]]
```
该代码使用了`scipy`库中的`distance_transform_edt`函数,该函数可以计算每个前景像素到最近的背景像素的欧几里得距离,最终生成的矩阵即为距离变换图像。