我的目标是使用标记按特定顺序选择点。例如,想象一下选择棋盘的边缘(我知道有使用 opencv 的自动技术,但我需要手动选项)。 使用下面的代码,我可以在图像上绘制标记。我想枚举标记及其在列表中相应的顺序
x
和 y
。
import matplotlib.pyplot as plt
import numpy as np
img = plt.imread("image.png")
x = np.random.rand(1, 20)*img.shape[1]
y = np.random.rand(1, 20)*img.shape[0]
size = 50
plt.imshow(img, cmap="gray") # plot image
plt.scatter(x, y, size, c="r", marker="+") # plot markers
plt.show()
这是我想要的结果的示例:
在每个点旁边放置一个文本不是可行吗?
像这样
import matplotlib.pyplot as plt
import numpy as np
img = plt.imread("patrick.webp")
x = np.random.rand(20) * img.shape[1]
y = np.random.rand(20) * img.shape[0]
size = 50
plt.imshow(img, cmap="gray")
plt.scatter(x, y, size, c="r", marker="+")
for i, (x_coord, y_coord) in enumerate(zip(x, y)):
plt.text(x_coord, y_coord, str(i+1), fontsize=12, color="yellow", ha="left")
plt.show()