Hướng dẫn read image from directory python - đọc hình ảnh từ thư mục python

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

Show
#!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

Xem thảo luận

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

Lưu bài viết

  • Đọc
  • Bàn luận
  • Xem thảo luận

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

    Lưu bài viết

    Đọc

    Bàn luậnUsing os.listdir

    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.ListDiros module to interact with the operating system.
    • Ví dụ 1: Chỉ lặp qua .png chỉlistdir() function from os to get access to the folders given in quotes.
    • 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.listdir() function, we iterate through the images and printed the names in order.
    • 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á..png files to be loaded using the endswith() function.

    Python3

    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ự.

    Ở đây chúng tôi chỉ đề cập đến & nbsp; .png sẽ được tải bằng hàm endswith ().

    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

    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 read image from directory python - đọc hình ảnh từ 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 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 3loaded: 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.png, .jpg, .jpeg files to be loaded using the endswith() function.

    Python3

    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ự.

    Ở đây chúng tôi chỉ đề cập đến & nbsp; .png sẽ được tải bằng hàm endswith ().

    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

    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 read image from directory python - đọc hình ảnh từ 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 9python best_image_loader.py D:\data\dataset\radar_dome\manual png0pathlib module

    • Ví dụ 2: lặp qua tất cả các loại hình ảnhpathlib module from Path.
    • Ở đây chúng tôi đã đề cập đến .png, .jpg, .jpeg các tệp được tải bằng hàm endswith ().Path() function and used it .glob(‘*.png’) function to iterate through all the images present in this folder.

    Python3

    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
    
    9os1os2 os3os44____45

    python best_image_loader.py D:\data\dataset\radar_dome\manual png1os2 os3os9python best_image_loader.py D:\data\dataset\radar_dome\manual png0

    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.

    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 read image from directory python - đọc hình ảnh từ thư mục python

    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. glob.iglob()

    • from from5import from7glob module.
    • folder_dir ____10 os 0glob.iglob() function we iterate through the images and print the names in order.
    • 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 44.png files to be loaded using the endswith() function.

    Python3

    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 9

    python best_image_loader.py D:\data\dataset\radar_dome\manual png1os2 os3os9python best_image_loader.py D:\data\dataset\radar_dome\manual png0

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

    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

    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 read image from directory python - đọc hình ảnh từ thư mục python


    Làm cách nào để đọc một hình ảnh trong một thư mục trong Python?

    Trong bài viết này, chúng ta sẽ học cách lặp lại thông qua hình ảnh trong một thư mục trong Python ...
    Phương pháp 1: Sử dụng hệ điều hành. Listdir ..
    Phương pháp 2: Sử dụng mô -đun Pathlib ..
    Phương pháp 3: Sử dụng glob.iglob ().

    Làm thế nào để tôi có được một hình ảnh từ một thư mục khác trong Python?

    Sao chép hình ảnh từ thư mục này sang thư mục khác trong Python..
    Nhập khẩu Quả cầu ..
    Nhập khẩu độ ..
    Nhập hệ điều hành ..
    src_dir = "của bạn/nguồn/dir".
    dst_dir = "của bạn/đích/dir".
    Đối với jpgfile trên toàn cầu.iglob (đường dẫn. tham gia (src_dir, "*.jpg")):.
    giao thoa.Sao chép (jpgfile, dst_dir).

    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.

    Làm cách nào để đọc nhiều hình ảnh trong một thư mục trong Python?

    Đọc và viết nhiều hình ảnh từ một thư mục trong Python (Skimage, .....
    Skimage: Từ Nhập mục Ioimg = io.Imread (....
    OpenCV: Nhập CV2# Để đọc hình ảnh là colorcv2_img = cv2.ImRead (....
    Nhập khẩu pydicom pydicom dưới dạng DICOM.....
    Skimage từ SkiMage Nhập ioio.imsave ("write_brain_image.png", img).