[英]How to load and process 2 images at a time
我在一個文件夾中有 20 張圖片。
我想加載前兩個圖像並處理,然后加載接下來的兩個圖像並處理等等。
我想知道如何在 python openCV 中實現這一點
要遵循的順序; 加載圖像 1, 2 > 進程(我會這樣做),然后加載圖像 2, 3 > 進程,3, 4 > 進程,4,5 > 進程...等等
import glob2
import cv2
images = glob2.glob('imageFolder/*.jpg')
images = list(zip(images, images[1:] + images[:1]))
for item in images:
img1 = cv2.imread(item[0])
img2 = cv2.imread(item[1])
#process here
我真的不知道您是否只想 2 乘 2 或 2 同時處理它們,所以這里是兩者!
按順序 2 x 2 處理:
import os
import cv2
files = os.listdir('<image_folder>')
for i in range(0, len(files), 2):
image1 = cv2.imread(files[i])
image2 = cv2.imread(files[i+1])
process(image1)
process(image2)
同時處理2:
一個有用的工具是 python 的多處理庫中的map
函數。 使用起來其實很簡單,例如:
from multiprocessing import Pool
p = Pool(2)
for i in range(0, len(files), 2):
p.map(process, [cv2.imread(files[i]),
cv2.imread(files[i+1])])
該列表包含您的元素,並且您正在嘗試將函數 process 並行應用於這些元素中的每一個。 p.map
會為你做到這一點沒問題!
祝你好運!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.