在大图像中, 垂直网格线在某一点停止出现。
在大图像中, 垂直网格线在某一点停止出现。
我正在使用matplotlib在图像上绘制垂直和水平的网格线。生成的图像上将有编号的方块。为了实现这个,我使用了这段代码:\n
def drawGridOverImage(image): """在图像上绘制带有1cm²方格的编号网格。""" import matplotlib.pyplot as plt import matplotlib.ticker as plticker my_dpi=300. # 设置图形 fig=plt.figure(figsize=(float(image.size[0])/my_dpi,float(image.size[1])/my_dpi),dpi=my_dpi) ax=fig.add_subplot(111) # 去除图像周围的空白 fig.subplots_adjust(left=0,right=1,bottom=0,top=1) # 设置网格间隔 # my_dpi是每英寸的点数,所以每个方格是1英寸² myInterval=my_dpi loc = plticker.MultipleLocator(base=myInterval) ax.xaxis.set_major_locator(loc) ax.yaxis.set_major_locator(loc) # 添加网格线 ax.grid(True, which='major', axis='both', linestyle='-') # 添加图像 ax.imshow(image) # 计算x和y方向上的网格数 nx=abs(int(float(ax.get_xlim()[1]-ax.get_xlim()[0])/float(myInterval))) ny=abs(int(float(ax.get_ylim()[1]-ax.get_ylim()[0])/float(myInterval))) # 在方格上添加一些标签 for j in range(ny): y=myInterval/2+j*myInterval for i in range(nx): x=myInterval/2.+float(i)*myInterval ax.text(x,y,'{:d}'.format(i+j*nx),color='r',ha='center',va='center') # 保存图形 #fig.savefig('myImageGrid.tiff',dpi=my_dpi) newImageName = nameImageWithGrid(image.filename) fig.savefig(newImageName,dpi=my_dpi) return fig
\n然而,当我运行这段代码时,垂直网格线在某个点停止出现。我附上了部分图像的屏幕截图(整个图像非常大)以演示问题。\n\n经过一些搜索,我找到了之前的问题,所以我不确定是否是同样的问题。值得注意的是,我正在处理非常大的图像,上面的图片尺寸为11648×8736。\n我希望能得到一些帮助,解决这个问题,并使垂直网格线在整个图像上显示出来。\n编辑:\n我在另一张大图上尝试了这段代码,可以在此链接这里找到,并且遇到了同样的问题,这是部分图像的屏幕截图,垂直网格线停止了:\n