Subset_name = head.split ('/') [- 2] IndexError: список индексов вне диапазона - PullRequest
0 голосов
/ 16 мая 2019

Я пытаюсь выполнить скрипт, который извлекает лицо из набора данных ibug.

     # Extract face image and new points.
    face_image, points_normalized = extract_face(image, points)

    # Mark the result
    points_restored = []
    for point in points_normalized:
        points_restored.append([point[0] * TARGET_SIZE, point[1] * TARGET_SIZE])
    pt.draw_landmark_point(face_image, points_restored)

    # New file to be written.
    # CAUTION: remember to set a correct name for different dataset.
    head, tail = os.path.split(file_name)
    subset_name = head.split('/')[-2]
    common_file_name = tail.split('.')[-2]
    common_url = os.path.join(
        TARGET_DIR, "300vw-" + subset_name + "-" + common_file_name)

    # Save the Image.
    image_url = common_url + ".jpg"
    cv2.imwrite(image_url, face_image)

python3 extract_face_from_ibug.py

Я получаю это сообщение об ошибке

Error Message

Оригинальный код:

https://github.com/yinguobing/image_utility/blob/master/extract_face_from_ibug.py

Как решить эту ошибку?

1 Ответ

0 голосов
/ 16 мая 2019

Ваш код ожидает, что file_name будет содержать косые черты / и выводит имя подмножества из элемента пути к файлу. Но вы находитесь в системе Windows, и ваш системный путь разделитель /. Так что вам нужно исправить звонок на split(). Попробуйте эту независимую от платформы версию того же самого:

subset_name = head.split(os.path.sep)[-2]

что автор кода должен был написать в первую очередь.

...