web-dev-qa-db-fra.com

Lire plusieurs images sur un dossier dans OpenCv (python)

Je veux lire plusieurs images sur un même dossier en utilisant opencv (python). Pour ce faire, dois-je utiliser la boucle for ou la boucle while avec la fonction imread? Si c'est le cas, comment? Aidez-moi, s'il vous plaît...

Je veux obtenir des images dans un tableau, puis les traiter une à une par une boucle.

5
Thamasha
import glob
import cv2

images = [cv2.imread(file) for file in glob.glob("path/to/files/*.png")]
20
Dr Sokoban

Cela va obtenir tous les fichiers dans un dossier dans onlyfiles. Ensuite, il les lira tous et les stockera dans le tableau images.

from os import listdir
from os.path import isfile, join
import numpy
import cv2

mypath='/path/to/folder'
onlyfiles = [ f for f in listdir(mypath) if isfile(join(mypath,f)) ]
images = numpy.empty(len(onlyfiles), dtype=object)
for n in range(0, len(onlyfiles)):
  images[n] = cv2.imread( join(mypath,onlyfiles[n]) )
import glob
import cv2 as cv

path = glob.glob("/path/to/folder/*.jpg")
cv_img = []
for img in path:
    n = cv.imread(img)
    cv_img.append(n)
0
Felipe Weber
import cv2
from pathlib import Path

path=Path(".")

path=path.glob("*.jpg")

images=[]`


for imagepath in path.glob("*.jpg"):

        img=cv2.imread(str(imagepath))
        img=cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)                         
        img=cv2.resize(img,(200,200))
        images.append(img)
print(images)
0
Bharat Kumar