>

opencv (python)를 사용하여 동일한 폴더에서 여러 이미지를 읽고 싶습니다. 그렇게하려면 for 를 사용해야합니다.  루프 또는 while   imread 와 루프  funcion? 그렇다면 어떻게? 도와주세요 ...

이미지를 배열로 가져 와서 루프를 통해 한 번에 하나씩 처리하고 싶습니다.


  • 답변 # 1

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

  • 답변 # 2

    onlyfiles 의 폴더에있는 모든 파일을 가져옵니다 . 그리고 그것들을 모두 읽고 배열 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 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)
    
    

  • 답변 # 4

    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)
    
    

  • 이전 angular - 매트 팽창 표시를 이동하는 방법?
  • 다음 excel - 발견 된 값을 VBA 복사