Diskuze: Jak načítat soubory ze složky
Člen
Zobrazeno 13 zpráv z 13.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
Ahoj, na to potřebuješ toto:
https://docs.python.org/…rary/os.html#…
Místo jednoho souboru zpracuješ všechny soubory, co to najde.
images=os.listdir(path='C:\TestData')
for file in images:
img=cv2.imread('file')
red = img[:,:,2]
green = img[:,:,1]
blue = img[:,:,0]
Když to takto napíšu, tak vrátí chybu:
red = img[:,:,2]
TypeError: 'NoneType' object is not subscriptable
Co mám špatně?
img=cv2.imread('file')
To čteš soubor se jménem 'file'.
Musíš použít toto:
img=cv2.imread(file)
Protože v té cestě by mělo být lomítko zdvojené, aby se bralo jako lomítko nebo použij raw string:
images=os.listdir(path=r'C:\TestData')
Opravila jsem to, ale stále to nefunguje. Co jiného by ještě mohlo být špatně?
Už vím, co je špatně. Hledá ty obrázky ve stejné složce, jako je zdroják, ale nenajde je, jsou ve složce TestData, tak vrátí chybu. Jak mám opravit
img=cv2.imread(file)
aby to nenačítalo file, ale C:\TestData\file ?
path=r'C:\TestData'
images=os.listdir(path)
for file in images:
img=cv2.imread(os.path.join(path, file))
# toto mi přijde divné
red = img[:,:,2]
green = img[:,:,1]
blue = img[:,:,0]
Teď už je cesta k obrázkům správná, ale i tak se do proměnné img
obrázek neuloží.
Co je divné na následujícím kódu? Chtěla jsem získat pole s hodnotami
RGB, nevím jak jinak to udělat.
Toto by mělo fungovat:
#!/usr/bin/env python3
import os
import cv2
import numpy
path = r'C:\TestData'
files = os.listdir(path)
for file in files:
with open(os.path.join(path, file), "rb") as f:
b = bytearray(f.read())
numpyarray = numpy.asarray(b, dtype=numpy.uint8)
img = cv2.imdecode(numpyarray, cv2.IMREAD_UNCHANGED)
print(img)
Zobrazeno 13 zpráv z 13.