plt.imshow (), давая TypeError («Данные изображения не могут быть преобразованы в плавающее») - PullRequest
0 голосов
/ 14 марта 2019

Я новичок в питоне.При попытке построить изображение с помощью приведенного ниже кода -

import tensorflow as tf;
import os, sys;
import skimage;
from skimage.color import rgb2gray
import matplotlib.pyplot as plt;
import random


def load_data(data_directory) :
    directories = [d for d in os.listdir(data_directory) if os.path.isdir(os.path.join(data_directory,d))]

    labels =[]
    images =[]

    for d in directories:
        label_directory = os.path.join(data_directory,d)
        file_names = [os.path.join(label_directory, f)
                      for f in os.listdir(label_directory)
                      if f.endswith(".ppm")]
        for f in file_names:
            images.append(skimage.data)
            labels.append(int(d))
    return images, labels

ROOT_PATH = "C:/Users/Administrator/Downloads/"

train_data_directory= os.path.join(ROOT_PATH, "BelgiumTSC_Training/Training")
test_data_directory = os.path.join(ROOT_PATH, "BelgiumTSC_Testing/Testing")
images, labels = load_data(train_data_directory)
traffic_signs = [300, 2250, 3650, 4000]
for i in range(len(traffic_signs)):
    plt.subplot(1, 4, i+1)
    plt.axis('off')
    plt.imshow(images[traffic_signs[i]])
    plt.subplt_adjust(wspace=0.5)
    plt.show()

Я получаю приведенную ниже ошибку -

raise TypeError("Image data cannot be converted to float")

Ошибка типа: данные изображения не могут быть преобразованы в число с плавающей точкой

Может кто-нибудь объяснить, пожалуйста, где я иду не так.Я следую учебнику от - https://www.datacamp.com/community/tutorials/tensorflow-tutorial#tensors

1 Ответ

0 голосов
/ 14 марта 2019

В вашем методе load_data в строке images.append(skimage.data) вы на самом деле не загружаете никакое изображение, вы просто добавляете модуль python skimage.data к изображениям, и именно поэтому он не может ничего показать, потому что ваш imagesне получай никакого изображения.Вы, вероятно, хотите images.append(skimage.data.load(f)) вместо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...