我有一个目录,里面有一些我需要阅读和显示的图片 我写了这个,但是它做了什么,很奇怪,在循环结束之前它不会显示任何图像!就像它缓冲一切然后冲洗它!行号然而工作正常!这意味着它们在循环结束时打印出来,当循环结束时,您会看到很多图像在单元格上显示! 这是代码:
import os
%matplotlib inline
img_dir = 'G:/deep-visualization-toolbox/input_images3/'
i = 0
for file in os.listdir(img_dir):
img = caffe.io.load_image(img_dir+file)
print '{0})'.format(i)
plt.figure()
plt.imshow(img)
i+=1
并输出:
0)
1)
2)
3)
4)
5)
6)
7)
...
C:\用户\万事达\ Anaconda2 \ lib中\站点包\ matplotlib \ pyplot.py:524: 运行时警告:已打开超过20个数字。数字创建 通过pyplot接口(
matplotlib.pyplot.figure
)被保留 直到明确关闭并可能消耗太多内存。 (控制 此警告,请参阅rcParamfigure.max_open_warning
)。 max_open_warning,RuntimeWarning)
21)
22)
...
168)
First image
second image
third image
....
如何解决此问题并获取图像以显示它们?
答案 0 :(得分:1)
您没有看到预期连续中的情节是因为%matplotlib inline
在for-loop
内没有生效。因此,您需要在plt.show()
下方添加plt.imshow(img)
以强制显示数字。以下是我将如何做到这一点:
from glob import glob
from scipy.misc import imread
import matplotlib.pyplot as plt
%matplotlib inline
img_dir = 'G:/deep-visualization-toolbox/input_images3/'
i = 0
for img_file in glob(img_dir+'*'):
img = imread(img_file)
print '{0}'.format(i)
plt.figure()
plt.imshow(img)
plt.show()
i+=1
我希望这会有所帮助。