我试图使用matplotlib
和plt
对两个图像aa和REFLECTANCE进行子绘图,问题是图形显示在控制台中而不是在新窗口中,我需要将图形放在一个新的单独窗口中以便保存并使用它在代码之外。
我认为这个问题实际上与我使用Linux(Ubuntu)的版本有关?或者我错过了一些代码?
谢谢您的帮助。
import matplotlib.pyplot as plt
import numpy as np
import cv2
directory = "/home/stagiaire/Bureau/tech/IMG_170622_081910_0004_RED.TIF"
aa=cv2.imread(directory)
plt.figure()
plt.subplot(221), plt.imshow(aa),plt.title('Image originale')
plt.subplot(222),
plt.imshow(np.array(REFLECTANCE).reshape(1280,960).T),plt.title('Reflectance')
默认情况下,Canopy在pylab qt模式下运行其IPython内核;在此模式下,Windows会在新窗口中弹出。因为他们没有为你做这件事,似乎过去由于某些原因你将设置更改为pylab内联模式。 (也许是因为你想运行TK程序,就像here?)
请将其重置为qt(Edit => Preferences => Python => backend = qt)。它现在按预期运作吗?
如果您使用matplotlib
,则需要使用plt.show()
显示图像,除非您不处于交互模式:
plt.figure()
plt.imshow(sample_image)
plt.show() # display it
注意:请注意,您无需显示图像即可进行保存。
plt.savefig('image.png')
去
Tools -> Preferences -> IPython consol -> Completion Type
把它设置为graphical