【问题标题】:Show images side by side in jupyter notebook [duplicate]在jupyter笔记本中并排显示图像[重复]
【发布时间】:2021-11-23 21:18:11
【问题描述】:

我想在我的 jupyter 笔记本中并排显示带有 matplotlib 的相册中的一些图像。

我写了一个函数,但它不起作用。

import cv2
import numpy as np
import matplotlib.pyplot as plt

def show(path):
    for iter in list.get(path):
        img = cv2.imread(images)
        img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
        plt.axis('off')
        plt.imshow(img)
        plt.show()
        fig, ax = plt.subplots(nrows=2, ncols=2)

【问题讨论】:

    标签: python matplotlib


    【解决方案1】:

    有几件事不对劲。首先,您将覆盖listiter,它们是两个内置的可调用对象。最好不要这样做。我不确定变量list 是什么,但它看起来是一个字典,因为它实现了.get 方法。

    您遇到的主要问题是,您在循环的每次迭代中都创建了一组新的图像/轴。

    您应该在 for 循环之外定义图像和轴,并在轴上迭代您想要绘制的图像。

    import matplotlib.pyplot as plt
    import matplotlib.image as mpimg
    from glob import glob
    
    def plot_album(album_name):
        fig, axes = plt.subplots(nrows=2, ncols=2)
        # this assumes the images are in images_dir/album_name/<name>.jpg
        image_paths = glob(images_dir + album_name + '/*.jpg')
        for imp, ax in zip(image_paths, axes.ravel()):
            img = mpimg.imread(imp)
            ax.imshow(img)
            ax.axis('off')
        fig.tight_layout()
    

    【讨论】:

      【解决方案2】:

      你只需要对每张图片使用 subplot 函数:

      plt.subplot(2, 2, n) # n is the position of your subplot (1 to 4)
      plt.imshow(img)
      

      加载完所有子图后,只需调用:

      plt.show()
      

      下面我做了一个简单的例子,可能对你有帮助,你可以在我的github repo找到这个文件的 Jupyter notebook:

      import cv2
      import numpy as np
      import matplotlib.pyplot as plt
      
      img = cv2.imread("a"+".jpg")
      img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
      plt.axis('off')
      
      plt.subplot(2, 2, 1)
      plt.imshow(img)
      
      plt.subplot(2, 2, 2)
      plt.imshow(img)
      
      plt.subplot(2, 2, 3)
      plt.imshow(img)
      
      plt.subplot(2, 2, 4)
      plt.imshow(img)
      
      plt.show()
      

      结果是:

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-05-01
        • 1970-01-01
        • 1970-01-01
        • 2019-03-17
        • 1970-01-01
        • 2020-07-22
        • 1970-01-01
        • 2018-02-26
        相关资源
        最近更新 更多