открыть cv не удается прочитать все файлы, образующие путь

#python #opencv #path #computer-vision #imread

Вопрос:

Я работаю с набором данных из 72 изображений и 72 масок. Я добавил изображения в numpy ndarray файл, я хочу, чтобы cv2 считывал файлы с пути, соответствующего файлам в numpy ndarray .

это путь к изображениям и маскам:

 images_dir = '/content/drive/MyDrive/dataset/images' masks_dir = '/content/drive/MyDrive/dataset/masks'  

#добавление изображений в numpy ndarray

 file_names = np.sort(os.listdir(images_dir))  file_names = np.char.split(file_names, '.') filenames = np.array([]) for i in range(len(file_names)):  filenames = np.append(filenames, file_names[i][0])  

это функция, которую я хочу, чтобы open cv считывал каждое изображение, а затем маскировал по соответствующему пути:

 def augment_dataset(count):  '''Function for data augmentation  Input:  count - total no. of images after augmentation = initial no. of images * count  Output:  writes augmented images (input images amp; segmentation masks) to the working directory  '''  transform_1 = augment(512, 512)  transform_2 = augment(480, 480)  transform_3 = augment(512, 512)  transform_4 = augment(800, 800)  transform_5 = augment(1024, 1024)  transform_6 = augment(800, 800)  transform_7 = augment(1600, 1600)  transform_8 = augment(1920, 1280)    i = 0  for i in range(count):  for file in filenames:  tile = file.split('_')[1]  img = cv2.imread(images_dir file '.jpg')  img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)  mask = cv2.imread(masks_dir file '.png')  mask = cv2.cvtColor(mask, cv2.COLOR_BGR2RGB)  

когда я запускаю код:

 augment_dataset(8)  

появляется эта ошибка:

 ---------------------------------------------------------------------------  error Traceback (most recent call last)  lt;ipython-input-112-fae4beb79e15gt; in lt;modulegt;() ----gt; 1 augment_dataset(8)  lt;ipython-input-111-121d55acd3fcgt; in augment_dataset(count)  20 tile = file.split('_')[1]  21 img = cv2.imread(images_dir file '.jpg') ---gt; 22 img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)  23 mask = cv2.imread(masks_dir file '.png')  24 mask = cv2.cvtColor(mask, cv2.COLOR_BGR2RGB)  error: OpenCV(4.1.2) /io/opencv/modules/imgproc/src/color.cpp:182: error: (-215:Assertion failed) !_src.empty() in function 'cvtColor'  

Я знаю, что это потому, что OpenCV не читал файлы. итак, как я могу заставить OpenCV читать файлы?

Комментарии:

1. Можете ли вы распечатать images_dir файл ‘.jpg’ перед imread и проверить, действительно ли существует последняя запись перед сбоем и является ли она изображением?

2. @Micka Я запускаю эту печать(images_dir файл ‘.jpg’), чтобы убедиться, что выходные данные являются изображениями: вот часть результатов: /content/drive/MyDrive/dataset/imagesimage_t1_01.jpg

3. вы пропускаете «/» после…. /изображений

4. Это так неловко, что я не заметил такой простой вещи. 🙂

Ответ №1:

В этих случаях лучше print(path/to/directory) проверить, является ли каталог правильным или нет. В этом случае мы видим, что я пропустил a / в пути к каталогу. Таким образом, Python не смог проанализировать данные. кроме того, вы можете использовать ose.path.exists(path/to/directory) его, чтобы узнать, существует ли путь или нет. если возвращаемое значение равно False , вы должны проверить указанный путь на наличие ошибок