Hướng dẫn display all images in folder python - hiển thị tất cả hình ảnh trong thư mục python

Đây là một kịch bản đơn giản có OpenCV, hình ảnh Scikit và Glob

#!C:\Users\test\anaconda3\envs\data_aquisition\python.exe
import glob
import argparse
from timeit import default_timer as timer
import skimage
from skimage.io import imread_collection
import cv2 


def get_args():
    parser = argparse.ArgumentParser(
        description='script that test the fastest image loading methods')
    parser.add_argument('src_path', help = "diractorry that contains the ims")
    parser.add_argument('extension', help = "extension of the images",choices=['jpg','png','webp'])
    return parser.parse_args()

def load_imgs_scikit_image_collection(path:str):
    #creating a collection with the available images 
    col = imread_collection(path)
    print('loaded: ',len(col),' imgs')
    return col

def load_imgs_scikit_image_glob(path):
    imgs = []
    for img in glob.glob(path):
        imgs.append(skimage.io.imread(img))
    return imgs

def load_image_opencv(path:str):
    imgs = []
    for f in glob.glob(path):
        imgs.extend(cv2.imread(f))
    return imgs  

def load_image_opencv_glob(path:str):
    filenames = glob.glob(path)
    filenames.sort()
    images = [cv2.imread(img) for img in filenames]
    return images

def laod_images_opencv_extisions(path):
    ext = [".jpg",".gif",".png",".tga",".webp"]   # Add image formats here
    files = []
    images = []
    [files.extend(glob.glob(path + '/*' + e)) for e in ext]
    images.extend([cv2.imread(file) for file in files])
    return images

def laod_images_ski_extisions(path):
    ext = [".jpg",".gif",".png",".tga",".webp"]   # Add image formats here
    files = []
    images = []
    [files.extend(glob.glob(path + '/*' + e)) for e in ext]
    images.extend([skimage.io.imread(file) for file in files])
    return images

def show_image(img):
    window_name = 'image'
    cv2.imshow(window_name, img)
    cv2.waitKey(0) 
    cv2.destroyAllWindows() 


def main():

    args = get_args()
    dir = args.src_path+'/*.'+args.extension
    start = timer()
    imgs=load_imgs_scikit_image_collection(dir)
    end = timer()
    print('scikit_image image collection',end - start) #time 0.08381089999999991
    show_image(imgs[2])

    start = timer()
    load_imgs_scikit_image_glob(dir)
    end = timer()
    print('scikit_image and glob',end - start) #time 16.627431599999998
    # dir = args.src_path+'\\.*'+args.extension

    start = timer()
    imgs_opencv = load_image_opencv_glob(dir) #time 10.9856656
    end = timer()
    print('opencv glob',end - start) 
    show_image(imgs_opencv[2]) 

    start = timer()
    valid_imgs_opencv = laod_images_opencv_extisions(args.src_path) #time 11.318516700000004
    end = timer()
    print('opencv glob extensions',end - start) 
    show_image(valid_imgs_opencv[2])

    start = timer()
    valid_imgs_opencv = laod_images_ski_extisions(args.src_path) #time 15.939870800000001
    end = timer()
    print('scikit_image glob extensions',end - start) 
    show_image(valid_imgs_opencv[2])


main()

Lệnh để chạy tập lệnh: python best_image_loader.py D:\data\dataset\radar_dome\manual png PNG được sử dụng để chỉ tải các tệp PNG.
png is used to load only png files.

Đầu ra

loaded:  876  imgs
scikit_image image collection 0.08248239999999996
scikit_image and glob 14.939381200000001
opencv glob 10.9708085
opencv glob extensions 10.974014100000005
scikit_image glob extensions 14.877048600000002

Tệp này chứa văn bản unicode hai chiều có thể được giải thích hoặc biên dịch khác với những gì xuất hiện dưới đây. Để xem xét, hãy mở tệp trong một trình soạn thảo cho thấy các ký tự Unicode ẩn. Tìm hiểu thêm về các ký tự unicode hai chiều

Nhập khẩu Quả cầu
Nhập matplotlib.pyplot như PLT
nhập matplotlib.image dưới dạng mpimg
%matplotlib nội tuyến
hình ảnh = []
cho img_path trong glob.glob ('./ data/1/*. png'):
hình ảnh.append (mpimg.imread (IMG_PATH))
plt.figure (figsize = (20,10))
cột = 5
Đối với tôi, hình ảnh trong liệt kê (hình ảnh):
plt.subplot (len (hình ảnh) / cột + 1, cột, i + 1)
plt.imshow (hình ảnh)
plt.xticks ([])
plt.yticks ([])

Cải thiện bài viết

Lưu bài viết

Trong bài viết này, chúng ta sẽ học cách lặp lại thông qua các hình ảnh trong một thư mục trong Python. & NBSP;

Phương pháp 1: Sử dụng Os.ListDirUsing os.listdir

Ví dụ 1: Chỉ lặp qua .png chỉ

  • Lúc đầu, chúng tôi đã nhập mô -đun HĐH để tương tác với hệ điều hành.os module to interact with the operating system.
  • Sau đó, chúng tôi nhập chức năng listDir () từ HĐH để có quyền truy cập vào các thư mục được đưa ra trong báo giá.listdir() function from os to get access to the folders given in quotes.
  • Sau đó, với sự trợ giúp của hàm Os.ListDir (), chúng tôi lặp lại thông qua các hình ảnh và in các tên theo thứ tự.os.listdir() function, we iterate through the images and printed the names in order.
  • Ở đây chúng tôi chỉ đề cập đến & nbsp; .png sẽ được tải bằng hàm endswith ()..png files to be loaded using the endswith() function.

Python3

import os

from os import listdir

folder_dir ____10

loaded:  876  imgs
scikit_image image collection 0.08248239999999996
scikit_image and glob 14.939381200000001
opencv glob 10.9708085
opencv glob extensions 10.974014100000005
scikit_image glob extensions 14.877048600000002
1

loaded:  876  imgs
scikit_image image collection 0.08248239999999996
scikit_image and glob 14.939381200000001
opencv glob 10.9708085
opencv glob extensions 10.974014100000005
scikit_image glob extensions 14.877048600000002
2
loaded:  876  imgs
scikit_image image collection 0.08248239999999996
scikit_image and glob 14.939381200000001
opencv glob 10.9708085
opencv glob extensions 10.974014100000005
scikit_image glob extensions 14.877048600000002
3
loaded:  876  imgs
scikit_image image collection 0.08248239999999996
scikit_image and glob 14.939381200000001
opencv glob 10.9708085
opencv glob extensions 10.974014100000005
scikit_image glob extensions 14.877048600000002
4
loaded:  876  imgs
scikit_image image collection 0.08248239999999996
scikit_image and glob 14.939381200000001
opencv glob 10.9708085
opencv glob extensions 10.974014100000005
scikit_image glob extensions 14.877048600000002
5

loaded:  876  imgs
scikit_image image collection 0.08248239999999996
scikit_image and glob 14.939381200000001
opencv glob 10.9708085
opencv glob extensions 10.974014100000005
scikit_image glob extensions 14.877048600000002
6
loaded:  876  imgs
scikit_image image collection 0.08248239999999996
scikit_image and glob 14.939381200000001
opencv glob 10.9708085
opencv glob extensions 10.974014100000005
scikit_image glob extensions 14.877048600000002
7
loaded:  876  imgs
scikit_image image collection 0.08248239999999996
scikit_image and glob 14.939381200000001
opencv glob 10.9708085
opencv glob extensions 10.974014100000005
scikit_image glob extensions 14.877048600000002
8
loaded:  876  imgs
scikit_image image collection 0.08248239999999996
scikit_image and glob 14.939381200000001
opencv glob 10.9708085
opencv glob extensions 10.974014100000005
scikit_image glob extensions 14.877048600000002
9python best_image_loader.py D:\data\dataset\radar_dome\manual png0

python best_image_loader.py D:\data\dataset\radar_dome\manual png1python best_image_loader.py D:\data\dataset\radar_dome\manual png2python best_image_loader.py D:\data\dataset\radar_dome\manual png3

Output::

Hướng dẫn display all images in folder python - hiển thị tất cả hình ảnh trong thư mục python

Ví dụ 2: lặp qua tất cả các loại hình ảnh

Ở đây chúng tôi đã đề cập đến .png, .jpg, .jpeg các tệp được tải bằng hàm endswith ()..png, .jpg, .jpeg files to be loaded using the endswith() function.

Python3

import os

from os import listdir

folder_dir ____10

loaded:  876  imgs
scikit_image image collection 0.08248239999999996
scikit_image and glob 14.939381200000001
opencv glob 10.9708085
opencv glob extensions 10.974014100000005
scikit_image glob extensions 14.877048600000002
1

loaded:  876  imgs
scikit_image image collection 0.08248239999999996
scikit_image and glob 14.939381200000001
opencv glob 10.9708085
opencv glob extensions 10.974014100000005
scikit_image glob extensions 14.877048600000002
2
loaded:  876  imgs
scikit_image image collection 0.08248239999999996
scikit_image and glob 14.939381200000001
opencv glob 10.9708085
opencv glob extensions 10.974014100000005
scikit_image glob extensions 14.877048600000002
3
loaded:  876  imgs
scikit_image image collection 0.08248239999999996
scikit_image and glob 14.939381200000001
opencv glob 10.9708085
opencv glob extensions 10.974014100000005
scikit_image glob extensions 14.877048600000002
4
loaded:  876  imgs
scikit_image image collection 0.08248239999999996
scikit_image and glob 14.939381200000001
opencv glob 10.9708085
opencv glob extensions 10.974014100000005
scikit_image glob extensions 14.877048600000002
5

loaded:  876  imgs
scikit_image image collection 0.08248239999999996
scikit_image and glob 14.939381200000001
opencv glob 10.9708085
opencv glob extensions 10.974014100000005
scikit_image glob extensions 14.877048600000002
6
loaded:  876  imgs
scikit_image image collection 0.08248239999999996
scikit_image and glob 14.939381200000001
opencv glob 10.9708085
opencv glob extensions 10.974014100000005
scikit_image glob extensions 14.877048600000002
7
loaded:  876  imgs
scikit_image image collection 0.08248239999999996
scikit_image and glob 14.939381200000001
opencv glob 10.9708085
opencv glob extensions 10.974014100000005
scikit_image glob extensions 14.877048600000002
8
loaded:  876  imgs
scikit_image image collection 0.08248239999999996
scikit_image and glob 14.939381200000001
opencv glob 10.9708085
opencv glob extensions 10.974014100000005
scikit_image glob extensions 14.877048600000002
9python best_image_loader.py D:\data\dataset\radar_dome\manual png0

Ví dụ 2: lặp qua tất cả các loại hình ảnh

Ở đây chúng tôi đã đề cập đến .png, .jpg, .jpeg các tệp được tải bằng hàm endswith ().

Output:

Hướng dẫn display all images in folder python - hiển thị tất cả hình ảnh trong thư mục python

loaded: 876 imgs scikit_image image collection 0.08248239999999996 scikit_image and glob 14.939381200000001 opencv glob 10.9708085 opencv glob extensions 10.974014100000005 scikit_image glob extensions 14.877048600000002 6loaded: 876 imgs scikit_image image collection 0.08248239999999996 scikit_image and glob 14.939381200000001 opencv glob 10.9708085 opencv glob extensions 10.974014100000005 scikit_image glob extensions 14.877048600000002 7 loaded: 876 imgs scikit_image image collection 0.08248239999999996 scikit_image and glob 14.939381200000001 opencv glob 10.9708085 opencv glob extensions 10.974014100000005 scikit_image glob extensions 14.877048600000002 8loaded: 876 imgs scikit_image image collection 0.08248239999999996 scikit_image and glob 14.939381200000001 opencv glob 10.9708085 opencv glob extensions 10.974014100000005 scikit_image glob extensions 14.877048600000002 9os1os2 os3os44____45pathlib module

  • python best_image_loader.py D:\data\dataset\radar_dome\manual png1os2 os3os9python best_image_loader.py D:\data\dataset\radar_dome\manual png0pathlib module from Path.
  • python best_image_loader.py D:\data\dataset\radar_dome\manual png1python best_image_loader.py D:\data\dataset\radar_dome\manual png223Path() function and used it .glob(‘*.png’) function to iterate through all the images present in this folder.

Python3

Phương pháp 2: Sử dụng & NBSP; Mô -đun Pathlib

Lúc đầu, chúng tôi đã nhập mô -đun PATHLIB từ đường dẫn.

Sau đó, chúng tôi vượt qua hàm thư mục/thư mục bên trong đường dẫn () và sử dụng chức năng .glob (‘*. PNG,) để lặp qua tất cả các hình ảnh có trong thư mục này.

from from5import from7

loaded:  876  imgs
scikit_image image collection 0.08248239999999996
scikit_image and glob 14.939381200000001
opencv glob 10.9708085
opencv glob extensions 10.974014100000005
scikit_image glob extensions 14.877048600000002
6python best_image_loader.py D:\data\dataset\radar_dome\manual png2import2

Output:

Hướng dẫn display all images in folder python - hiển thị tất cả hình ảnh trong thư mục python

folder_dir ____10 os 0 glob.iglob()

  • loaded:  876  imgs
    scikit_image image collection 0.08248239999999996
    scikit_image and glob 14.939381200000001
    opencv glob 10.9708085
    opencv glob extensions 10.974014100000005
    scikit_image glob extensions 14.877048600000002
    
    3
    loaded:  876  imgs
    scikit_image image collection 0.08248239999999996
    scikit_image and glob 14.939381200000001
    opencv glob 10.9708085
    opencv glob extensions 10.974014100000005
    scikit_image glob extensions 14.877048600000002
    
    0 os 3os 44glob module.
  • loaded:  876  imgs
    scikit_image image collection 0.08248239999999996
    scikit_image and glob 14.939381200000001
    opencv glob 10.9708085
    opencv glob extensions 10.974014100000005
    scikit_image glob extensions 14.877048600000002
    
    2 os 7
    loaded:  876  imgs
    scikit_image image collection 0.08248239999999996
    scikit_image and glob 14.939381200000001
    opencv glob 10.9708085
    opencv glob extensions 10.974014100000005
    scikit_image glob extensions 14.877048600000002
    
    4 os 9glob.iglob() function we iterate through the images and print the names in order.
  • Phương pháp 3: Sử dụngglob.iglob ().png files to be loaded using the endswith() function.

Python3

Lúc đầu, chúng tôi đã nhập mô -đun GLOB.

Lúc đầu, chúng tôi đã nhập mô -đun PATHLIB từ đường dẫn.

Sau đó, chúng tôi vượt qua hàm thư mục/thư mục bên trong đường dẫn () và sử dụng chức năng .glob (‘*. PNG,) để lặp qua tất cả các hình ảnh có trong thư mục này.

loaded:  876  imgs
scikit_image image collection 0.08248239999999996
scikit_image and glob 14.939381200000001
opencv glob 10.9708085
opencv glob extensions 10.974014100000005
scikit_image glob extensions 14.877048600000002
6
loaded:  876  imgs
scikit_image image collection 0.08248239999999996
scikit_image and glob 14.939381200000001
opencv glob 10.9708085
opencv glob extensions 10.974014100000005
scikit_image glob extensions 14.877048600000002
7
loaded:  876  imgs
scikit_image image collection 0.08248239999999996
scikit_image and glob 14.939381200000001
opencv glob 10.9708085
opencv glob extensions 10.974014100000005
scikit_image glob extensions 14.877048600000002
8
loaded:  876  imgs
scikit_image image collection 0.08248239999999996
scikit_image and glob 14.939381200000001
opencv glob 10.9708085
opencv glob extensions 10.974014100000005
scikit_image glob extensions 14.877048600000002
9python best_image_loader.py D:\data\dataset\radar_dome\manual png0

python best_image_loader.py D:\data\dataset\radar_dome\manual png1python best_image_loader.py D:\data\dataset\radar_dome\manual png2python best_image_loader.py D:\data\dataset\radar_dome\manual png3

Output::

Hướng dẫn display all images in folder python - hiển thị tất cả hình ảnh trong thư mục python


Bạn có thể hiển thị hình ảnh trong Python không?

Python có nhiều thư viện khác nhau có thể được sử dụng để hiển thị hình ảnh.Ba trong số các thư viện phổ biến nhất là Gối, Matplotlib và OpenCV.. Three of the most popular libraries are Pillow, Matplotlib, and OpenCV.

Làm thế nào để Jupyter Notebook đọc hình ảnh từ một thư mục?

Để đọc hình ảnh bằng OpenCV, tôi đã xác định chức năng Load_IMAGES_FROM_FOLDER, có một đường dẫn mà hình ảnh được lưu trữ dưới dạng tham số đầu vào, trong bước tiếp theo CV2.Imread Function Đọc tất cả các tệp trong một thư mục và nối chúng vào hình ảnh = [] Danh sách sau đó trả về danh sách hình ảnh.