我正在尝试在一个目录中显示多个图像。
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显示多张图像?
谢谢!
答案 0 :(得分:0)
问题在这里
fig, ax = plt.subplots(nrows=20, ncols=2, figsize=(15,6))
将ax
设为形状为np.array
的{{1}}。因此,当您执行(20,2)
时,for a in ax
是a
个轴中的np.array
个。要解决此问题,请将以下行更改为:
2