考虑以下图像,存储为numpy数组:
a = [[0,0,0,0,0,1,1,0,0,0],
[0,0,0,0,1,1,1,1,0,0],
[0,0,0,0,0,1,1,0,0,0],
[0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,2,0,0,0,0],
[0,0,0,0,0,2,2,0,0,0],
[0,0,0,0,0,2,0,0,0,0],
[0,0,0,0,3,3,3,0,0,0],
[4,0,0,0,0,0,0,0,0,0],
[4,4,0,0,0,0,0,0,0,0],
[4,4,4,0,0,0,0,0,0,0]]
a = np.array(a)
零表示背景像素,1、2、3和4表示属于对象的像素。您可以看到对象在图像中始终形成连续的岛屿或区域。我想知道每对对象之间的距离。作为距离度量,我希望得到最短的直线距离,即那些最接近彼此的对象的像素之间的距离。例如:
Distance(2,3) = 1
,因为它们是相接触的。Distance(1,2) = 2
,因为恰好有一个背景像素分隔两个区域,或者换句话说,对象的最近像素相隔两个像素。请问有人能告诉我如何在Python中解决这个问题吗?或者给我一些资源链接吗?