Загрузка файла изображения - PullRequest
1 голос
/ 19 апреля 2020

Задача состоит из следующего: «Входное изображение - это набор из 3 пластин, соответствующих каналам B, G и R (сверху вниз). Вы должны реализовать функцию ???? _ ????, которая считывает данные и возвращает список изображений пластин. ??? _ ???? - это путь к каталогу с изображениями пластин. Если этот каталог находится в том же каталоге, что и этот блокнот, то можно использовать аргументы по умолчанию. "

Файл, который содержит изображения для загрузки это пластины. Планшеты и блокнот находятся в одном файле, называемом Deep Learning in Computer Vision.

Это код, который я написал:

def load_data(dir_name ='C:/Users/ASUS/Desktop/Self_Learning/Coursera/Deep Learning in Computer Vision/plates'):

    im_list=[]
    for i in dir_name:
        im=np.load(i)
        im_list.append(im)
    return im_list
    pass

plates = load_data()

Это ошибка, которую я получил.

FileNotFoundError Traceback (последний последний вызов) в 8 проходах 9 --- > 10 пластин = load_data ()

в load_data (dir_name) 3 im_list = [] 4 для i в dir_name: ----> 5 im = np.load (i) 6 im_list.append (im) 7 вернуть im_list

~ \ Anaconda3 \ lib \ site-packages \ numpy \ lib \ npyio.py в загрузке (файл, mmap_mode, allow_pickle, fix_imports, кодировка) 420 own_fid = False 421 else: -> 422 fid = open (os_fspath (file), "rb") 423 own_fid = True 424

FileNotFoundError: [Errno 2] Нет такого файла или каталога: 'C'

Я пробовал это :

import os

def load_data(dir_name ='C:/Users/ASUS/Desktop/Self_Learning/Coursera/Deep Learning in Computer Vision/plates'):
    im_list=[]
    for f in os.listdir(dir_name):
        fpath = os.path.join(dir_name, f) # this will give you the path of each file in your directory
        for im in fpath:
            im_list.append(im)

    print(im_list)

plates = load_data()

но результат оказался не тем, что я хочу: enter image description here

, что я хочу, это ['1', '2', '3' , '4', '5', '6'] Я в основном закончил печатью пути каждого изображения и изображения ...

Ответы [ 3 ]

2 голосов
/ 19 апреля 2020

Вы перебираете переменную dir_name, которая является строкой. Переменная i принимает значение символа в строке. Вам нужно использовать имя каталога, чтобы получить файлы в нем, как показано ниже.

import os

def load_data(dir_name ='C:/Users/ASUS/Desktop/Self_Learning/Coursera/Deep Learning in Computer Vision/plates'):
  im_list=[]
  for subdir, dirs, files in os.walk(dir_name):
      for file in files:
         im=np.load(file)
         im_list.append(im)
  return im_list
2 голосов
/ 19 апреля 2020

Это должно дать вам то, что вы хотите

import os

def load_data(dir_name ='C:/Users/ASUS/Desktop/Self_Learning/Coursera/Deep Learning in Computer Vision/plates'):
    im_list=[]
    for f in os.listdir(dir_name):
        fpath = os.path.join(dir_name, f) # this will give you the path of each file in your directory
        do_something_with_your_file(fpath)

Подробнее о os.listdir() https://docs.python.org/3/library/os.html#os .listdir

Также оператор pass после return не имеет никакого эффекта.

0 голосов
/ 19 апреля 2020

Итак, я попробовал это, и это сработало!

import os
import matplotlib.image as img

def load_data(dir_name ='C:/Users/ASUS/Desktop/Self_Learning/Coursera/Deep Learning in Computer Vision/plates'):
    im_list=[]
    for f in os.listdir(dir_name):
        fpath = os.path.join(dir_name, f) # this will give you the path of each file in your directory
        im = img.imread(fpath) 
        im_list.append(im)
    return im_list


plates = load_data()

Спасибо всем за помощь.

...