【问题标题】:How to display multiple images from a folder in python?如何在python中显示文件夹中的多个图像?
【发布时间】:2020-11-08 22:14:58
【问题描述】:

我正在尝试使用 k-means 对图像进行聚类。

我的文档中有一个文件夹,里面有 30 张图片。首先,我试图在开始聚类代码之前读取每个图像。但是,由于某种原因,下面的代码只输出一张图片:

img_dir="C:/Users/User/Documents/MATLAB/attempt6images"
data_path=os.path.join(img_dir,'*g')
files=glob.glob(data_path)
data=[]
for f1 in files:
    img=cv2.imread(f1)
    data.append(img)
       
plt.imshow(img)

我希望看到所有 30 张图像都已存储在代码中,以便我以后可以对它们进行聚类。为什么我运行这段代码时只显示一张图片?

【问题讨论】:

  • 你是在 jupyter notebook 里做这个吗?

标签: cluster-analysis k-means cv2 imshow


【解决方案1】:

试试这个代码

from matplotlib import pyplot
from matplotlib.image import imread
folder = 'train/'     #folder where your photos are store
# plot first few images
for i in range(9):
    # define subplot
    pyplot.subplot(330 + 1 + i)
    x= folder + 'cat.' + str(i) + '.jpg'
    # load image pixels
    image = imread(x)
    # plot raw pixel data
    pyplot.imshow(image)

显示图

pyplot.show()

【讨论】:

    【解决方案2】:

    我有点晚了 试试下面的代码:

    img_dir="C:/Users/User/Documents/MATLAB/attempt6images"
    all_files=os.listdir(img_dir)
    data_path = [os.path.join(img_dir + "/" + i) for i in all_files]
    k=0
    for i in data_path:
      k=k+1
      plt.subplot(3,2,k) 
      plt.imshow(imread(i))
    plt.show()
    

    注意:如果您显示 6 张图像,则子图的前 2 个参数为 (3,2),即 3 列和 2 行。 对于 4 张图像,它将是 (2,2)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-10-14
      • 2015-04-21
      • 2018-09-07
      • 1970-01-01
      • 2013-11-18
      • 1970-01-01
      • 1970-01-01
      • 2013-11-13
      相关资源
      最近更新 更多