我通过imread()
拍摄图像,但图像的大小与图像不同。此外,当我保存图形时,图像周围的白色/灰色空间被视为图像的一部分。
我想要的是获取图像,在经过一些处理后保存图像并且图像大小相同且没有白色/灰色空间。
实际上,我尝试做的是使用NetworkX包在图像上绘制图形并保存我在其他地方使用的图形。
代码就是这样;
import matplotlib.pyplot as plt
import networkx as nx
import matplotlib.image as mpimg
G = nx.cycle_graph(80)
pos = nx.circular_layout(G)
img = mpimg.imread(path1)
plt.imshow(img)
nx.draw(G,pos)
nx.draw(G, pos=pos)
plt.axis('off')
plt.show()
plt.savefig('test.png')
问候
答案 0 :(得分:1)
这取决于你如何保存你的图像 - 你应该使用
import matplotlib.pylab as pp
pp.imwrite('savedimage.png', matrix)
而不是创建图中的savefig
选项 - 我想这就是生成边框的地方。
如果您需要保存图形,因为图中添加了其他元素,那么您需要做三件事,
dpi
,使保存的图像与输入图像的尺寸相同。 这些都是在matplotlib
第1步:
ax = pp.gca()
ax.set_position([0,0,1,1])
第2步:
asprat = float(img.shape[0])/img.shape[1]
sz = fig.get_size_inches()
fig.set_figsize_inches([sz[0], asprat * sz[1])
第3步:
fig.set_dpi( img.shape[0]/sz[0] )
尝试一下 - 如果图像是旋转绘制的,我可能已切换尺寸。