Не открывается изображение openCV
Пишу функцию которая открывает все изображения, находящиеся в директории Однако, при вызове cv2.imread() изображение не считывается, значение переменной остается None
error: (-215:Assertion failed)
images = []
directory = "C:/Users/Admin/Documents/MEGA/Evgeniy/Study/Диплом/images/"
folder = os.chdir(directory)
for file in os.listdir(folder):
extention = file.split('.')[-1]
if extention in CORRECT_EXTENTIONS:
full_path = directory+file
image = cv2.imread(full_path)
image = cv2.inRange(image, (0,0,0), (255,255,255))
images.append(cv2.resize(image, (64,64)))
cv2.imshow('image', image)
return images
Путь был попробован как через /, так и через \ \
Ответы (1 шт):
Автор решения: GrAnd
→ Ссылка
У OpenCV есть проблемы с чтением из файлов содержащими в пути или имени не английские символы. Чтобы прочитать такие файлы вместо imread() можно использовать такую конструкцию:
image = cv2.imdecode(np.fromfile(full_path, dtype=np.uint8), cv2.IMREAD_COLOR)
Ну и полный пример, который работает с русскими именами в пути. И, да, chdir тут совершенно не нужен.
import os, cv2
import numpy as np
CORRECT_EXTENTIONS = ["png"]
def test():
images = []
directory = r".\Русский"
for file in os.listdir(directory):
extention = file.split('.')[-1]
if extention in CORRECT_EXTENTIONS:
full_path = os.path.join(directory, file)
image = cv2.imdecode(np.fromfile(full_path, dtype=np.uint8), cv2.IMREAD_COLOR)
image_mask = cv2.inRange(image, (0,0,0), (127,127,127))
images.append(cv2.resize(image_mask, (64,64)))
cv2.imshow('image', np.hstack([image, cv2.cvtColor(image_mask, cv2.COLOR_GRAY2BGR)]))
cv2.waitKey(0)
return images
test()