gpt4 book ai didi

python - 在图像上绘制线条与坐标不匹配。 Python

转载 作者:行者123 更新时间:2023-12-01 03:23:36 26 4
gpt4 key购买 nike

当我在图像上按顺序绘制点时,它们会按预期显示:

import numpy as np
import matplotlib.pyplot as plt
#display in a jupyter notebook
%matplotlib inline
#make and display data
image = np.full((50,60,), 0, dtype = 'float32')
image[10:20, 10:20] = .5
image[10,20, 30:40] = .5
plt.plot(15,15, 'y*')
plt.plot(35,15, 'b*')
plt.imshow(image)

points plotted on image

但是当我尝试在这两点之间绘制一条线时,它似乎使用了不同的轴约定:

plt.plot([15,15], [35,15], 'y-')
plt.imshow(image)

weird plotting

如果我在直线上指定一个点数组,它就可以正常工作:

line_x = np.array(range(15,35))
line_y = np.repeat(15, 20)
plt.plot(line_x, line_y, 'y-')
plt.imshow(image)

line points specified

我猜 matplotlib 对这些绘图任务使用了不同的轴约定,但我很困惑为什么这在绘制连续点时有效,但在绘制两点之间的连接线时却不起作用?

上下文:我正在使用 skimage.measure.profile_line http://scikit-image.org/docs/dev/api/skimage.measure.html 执行线扫描。您可以使用此函数指定线扫描的开始和停止,但我想直观地演示线扫描在图像中的位置。

最佳答案

Matplotlib 总是使用相同的约定,

plt.plot(x,y, ...)

哪里x是水平坐标,y是纵坐标。这与您是否绘制点线无关。

当你打电话时

plt.plot(15,15, 'y*')
plt.plot(35,15, 'b*')

第一个点的 x 坐标是 15 ,第二个点的 x 坐标为 35 。当您调用plt.plot([15,15], [35,15], 'y-')时,两点的x坐标均为15 .
因此,有两点

x1 = 15; y1 = 15
x2 = 35; y2 = 15

您可以通过以下方式绘制它们

plt.plot(x1,y1, 'y*')
plt.plot(x2,y2, 'b*')

plt.plot([x1,x2], [y1,y2], 'y-')

关于python - 在图像上绘制线条与坐标不匹配。 Python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41654237/

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