在python中在tif图像上添加网格

时间:2012-05-17 09:02:57

标签: matplotlib

您好我想知道如何在我的图像上添加一个网格然后在python中显示它。 这是我想要做的图片。注意:我还想为图像中的某些块指定线型和颜色,如下图所示。 非常感谢。 this image was generated in matlab

2 个答案:

答案 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')