Đâ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
1loaded: 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
5loaded: 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 png
0python best_image_loader.py D:\data\dataset\radar_dome\manual png
1python best_image_loader.py D:\data\dataset\radar_dome\manual png
2python best_image_loader.py D:\data\dataset\radar_dome\manual png
3
Output::
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
1loaded: 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
5loaded: 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 png
0Ví 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:
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
9os
1os
2 os
3os
44____45pathlib 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
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
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
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
python best_image_loader.py D:\data\dataset\radar_dome\manual png
1os
2os
3os
9python best_image_loader.py D:\data\dataset\radar_dome\manual png
0pathlib module from Path.python best_image_loader.py D:\data\dataset\radar_dome\manual png
1python best_image_loader.py D:\data\dataset\radar_dome\manual png
223Path[] 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
from
5import
from
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
6python best_image_loader.py D:\data\dataset\radar_dome\manual png
2import
2Output:
folder_dir
____10 os
0 glob.iglob[]
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
0loaded: 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
os
3os
44glob module.
2loaded: 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
os
7
4loaded: 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
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
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 png
0python best_image_loader.py D:\data\dataset\radar_dome\manual png
1python best_image_loader.py D:\data\dataset\radar_dome\manual png
2python best_image_loader.py D:\data\dataset\radar_dome\manual png
3
Output::