2012-08-01 3 views
0

이미지를 imread()로 찍지 만 그림의 크기가 이미지와 다릅니다. 또한 그림을 저장할 때 이미지 주변의 흰색/회색 공간은 이미지의 일부로 간주됩니다.이미지 크기를 정돈 matplotlib

내가 갖고 싶은데요 이미지를 얻으려면, 프로세스가 끝나면 저장하고 크기가 같고 흰색/회색 공간이없는 이미지를 만들어야합니다.

실제로 내가하려고하는 것은 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') 

감사

그것은 당신이 당신의 이미지를 저장하는 방법에 따라 달라집니다

답변

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]) 

시도해보십시오. - 이미지가 회전 된 것처럼 그려지는 경우 치수를 바꿀 수 있습니다.

+0

@ AhmetTuğrulBayrak : 질문 끝에 코드를 추가하십시오. 주석에서 읽을 수는 없습니다. – jmetz

+0

죄송합니다. 질문에 코드를 추가했습니다. –

+2

@ AhmetTuğrulBayrak : 답변이 맞다면이 대답을 수락하거나 작동하지 않는 경우 알려주십시오. – jmetz

관련 문제