使用imshow python在一个目录中显示多个图像

时间:2019-04-22 03:26:19

标签: python matplotlib imshow

我正在尝试在一个目录中显示多个图像。

import os
import cv2
import numpy as np
import random
import math

import matplotlib
from matplotlib.pyplot import imshow
from matplotlib import pyplot as plt
import matplotlib.image as mpimg
%matplotlib inline

dir_path = 'img'
images = os.listdir(dir_path)
img_paths = [os.path.join(dir_path, i) for i in images]
img_paths.sort()
img_all = np.array([cv2.cvtColor(cv2.imread(p), cv2.COLOR_BGR2RGB) for p in img_paths])


def display_helper(images, cmap=None):
    fig, ax = plt.subplots(nrows=20, ncols=2, figsize=(15,6))
    for a in ax:
        a.imshow(img, interpolation='none')

display_helper(img_all)

但是我得到这个错误

AttributeError: 'numpy.ndarray' object has no attribute 'imshow'

如何使用imshow显示多张图像?

谢谢!

1 个答案:

答案 0 :(得分:0)

问题在这里

fig, ax = plt.subplots(nrows=20, ncols=2, figsize=(15,6))

ax设为形状为np.array的{​​{1}}。因此,当您执行(20,2)时,for a in axa个轴中的np.array个。要解决此问题,请将以下行更改为:

2