Сохранение изображения matplotlib приводит к ошибке измерения

#python #matplotlib #image-processing #save #typeerror

#питон #matplotlib — файл #обработка изображений #Сохранить #ошибка типа #python #matplotlib

Вопрос:

Прежде всего: я новичок во всем этом, пожалуйста, простите мне мое невежество.

Я попытался загрузить изображения из TFRecord-File и я могу показать их с помощью plt.show() , но когда я пытаюсь сохранить изображения с помощью plt.imsave() , я получаю сообщение об ошибке.

Вот что я пытался сделать:

 import tensorflow as tf
import matplotlib.pyplot as plt

reader = tf.data.TFRecordDataset(input_file)

for raw_record in reader.take(1):
    example = tf.train.Example()
    example.ParseFromString(raw_record.numpy())
    raw_record = example.features.feature['image/encoded']
    img = example.features.feature["image/encoded"].bytes_list.value[0]
    decoded = tf.io.decode_jpeg(img)

    plt.figure(figsize = (20,3))
    plt.imshow(decoded)
    plt.show()
    plt.imsave(output_file, decoded)
  

Ошибка заключается в следующем:

 Traceback (most recent call last):
  File "/home/freddy/PycharmProjects/ocr/visualize_fsns.py", line 30, in <module>
    plt.imsave(flags.output_file, decoded)
  File "/home/freddy/.local/lib/python3.8/site-packages/matplotlib/pyplot.py", line 2235, in        imsave
    return matplotlib.image.imsave(fname, arr, **kwargs)
  File "/home/freddy/.local/lib/python3.8/site-packages/matplotlib/image.py", line 1567, in imsave
    rgba = sm.to_rgba(arr, bytes=True)
  File "/home/freddy/.local/lib/python3.8/site-packages/matplotlib/cm.py", line 305, in to_rgba
    xx = np.empty(shape=(m, n, 4), dtype=x.dtype)
TypeError: data type not understood
  

Не могли бы вы, пожалуйста, помочь мне разгадать эту тайну?

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

1. Можете ли вы попробовать xx = np.empty((m, n, 4))

Ответ №1:

matplotlib может запутаться, потому что tf.io.decode_jpeg() возвращает тензор; это может объяснить сообщение об ошибке типа данных. Попробуйте преобразовать decoded в массив numpy с помощью .numpy() перед построением графика.