我正在尝试使用Scipy库中的ndimage.measurements.center_of_mass
在二进制图像上找到重心。
我的代码如下:
def show_keypoints(image, key_point):
plt.imshow(image, interpolation='nearest')
plt.scatter(key_point[0],key_point[1], s=20, marker='.', c='lightgreen')
#Loading the image (shape : (576,576) as np.array))
img = load_img(path)
centroid = scipy.ndimage.measurements.center_of_mass(img)
fig = plt.figure()
ax = plt.subplot()
ax.set_title('Label')
show_keypoints(img, centroid)
plt.show()
获取:
因此,我检查了输入的图像是否正确,这是正确的,我使用np.unique(imgs[i])
得到了(array([0, 1], dtype=uint8)
,检查图像是否为二进制。
我不确定这里不是什么。
有人有主意吗?
此致
答案 0 :(得分:2)
将参数的顺序更改为分散:
def update(tree: Tree, id: String, val: Int): Tree = {
tree match {
case NodeType1(childs) =>
NodeType1(childs.map(update(_, id, val)))
case NodeType2(a, childs) =>
NodeType2(a, childs.map(update(_, id, val))
case NodeType3(a, b, childs) =>
NodeType3(a, b, childs.map(update(_, id, val))
...
case Leaf(`id`, oldVal) =>
Leaf(id, val)
}
}
plt.scatter(key_point[1], key_point[0], s=20, marker='.', c='lightgreen')
使用基于图像的约定来绘制其数据,而imshow
和scatter
使用常规(x,y)坐标。