Read Multiple images on a folder in OpenCv (python)

▼魔方 西西 提交于 2020-07-04 06:15:41

问题


I want to read multiple images on a same folder using opencv (python). To do that do I need to use for loop or while loop with imread funcion? If so, how? please help me...

I want to get images into an array and then processed them one at a time through a loop.


回答1:


import glob
import cv2

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



回答2:


This will get all the files in a folder in onlyfiles. And then it will read them all and store them in the array 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]) )



回答3:


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)



回答4:


This one has better time efficiency.

def read_img(img_list, img):
    n = cv2.imread(img, 0)
    img_list.append(n)
    return img_list

path = glob.glob("*.bmp") #or jpg
list_ = []`

cv_image = [read_img(list_, img) for img in path]




回答5:


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)



回答6:


def flatten_images(folder): # Path of folder (dataset)

images=[]                             # list contatining  all images

for filename in os.listdir(folder):

    print(filename)

    img=plt.imread(folder+filename)  # reading image (Folder path and image name )

    img=np.array(img)                #

    img=img.flatten()                # Flatten image 

    images.append(img)               # Appending all images in 'images' list 

return(images)


来源:https://stackoverflow.com/questions/33369832/read-multiple-images-on-a-folder-in-opencv-python

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!