您好我想知道如何在我的图像上添加一个网格然后在python中显示它。 这是我想要做的图片。注意:我还想为图像中的某些块指定线型和颜色,如下图所示。 非常感谢。
答案 0 :(得分:0)
显示图像的imshow
功能。在轴顶部显示网格就像grid(True).
答案 1 :(得分:0)
下面的示例显示了如何显示.tif文件,创建网格,以及如何将网格放在其他绘图元素下方,以便您可以在图像和网格上绘制框和线。
import matplotlib.pyplot as plt
from PIL import Image
import matplotlib.patches as mpatches
im = Image.open('stinkbug.tif')
# Flip the .tif file so it plots upright
im1 = im.transpose(Image.FLIP_TOP_BOTTOM)
# Plot the image
plt.imshow(im1)
ax = plt.gca()
# create a grid
ax.grid(True, color='r', linestyle='--', linewidth=2)
# put the grid below other plot elements
ax.set_axisbelow(True)
# Draw a box
xy = 200, 200,
width, height = 100, 100
ax.add_patch(mpatches.Rectangle(xy, width, height, facecolor="none",
edgecolor="blue", linewidth=2))
plt.draw()
plt.show()
您可以使用matplotlib.patches在图像上绘制所有类型的形状。要绘制单独的行,我喜欢使用以下行,但您也可以使用matplotlib.lines.Line2D。
plt.axvline(x=0.069, ymin=0, ymax=40, linewidth=4, color='r')