簡體   English   中英

如何一次加載和處理 2 個圖像

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM