无法通过openCV打开多个图像

时间:2018-11-09 18:50:09

标签: python opencv matplotlib

我正在为我的项目学习图像处理,我想从一个文件夹中打开多个图像,但是问题是图像文件已加载,但是当我尝试通过matplot lib显示它时,仅显示一个图像。代码为< / p>

      img_dir=r"D:\UCP\Machine Learning A-Z\facialExp\images"
      valid_image_extensions = [".jpg", ".jpeg", ".png", ".tif", ".tiff"] 
      #specify your vald extensions here
      valid_image_extensions = [item.lower() for item in 
      valid_image_extensions]
      image_path_list=[]

      for file in os.listdir(img_dir):
        extension = os.path.splitext(file)[1]
        if extension.lower() not in valid_image_extensions:
         continue
        image_path_list.append(os.path.join(img_dir, file))



      for image_file in image_path_list:
         image=cv2.imread(image_file)

        if image is not None:
          plt.imshow(image, cmap='gray')
        elif image is None:
          print ("Error loading: " + image_file)
          #end this loop iteration and move on to next image
          continue

在第一个循环中,所有图像的目录都保存在image_path_list中,但是当我要在第二个循环中绘制时,仅绘制一个。 请暗示我想念或做错什么了。.

1 个答案:

答案 0 :(得分:0)

您正在多次加载image变量,因为您处于for循环中。因此,您基本上是将一个图像加载到另一个图像之上,并且只会显示最后一个图像。

为使代码正常工作,您每次加载图像时都需要进行绘制。

您的代码可能只是错误地缩进,如果您将一个制表符的if语句缩进一个标签,它应该可以工作