Допустимые данные для imshow - PullRequest
0 голосов
/ 15 февраля 2019

Я хочу создать новое изображение с numpy, изображение, которое я хочу создать, выглядит так: enter image description here

Но когда я запускаю свой скрипт, чтобы показать изображение, мне что-то показываюткак это: enter image description here

Не показывает полукруг и отправляет сообщение, которое говорит "Отсечение входных данных в допустимый диапазон для imshow с данными RGB ([0..1] для чисел с плавающей запятой или [0..255] для целых чисел). "

Мой код такой:

import math
import numpy as np
import matplotlib.pyplot as plt

new_image = np.zeros((300, 250, 3))

for x in range(300):
    for y in range(250):
        if (180 <= x <= 240) and (100 <= y <=200):
            new_image[x, y , 2] = 255
        elif (90 <= x <= 150) and ((-2*x/3)+110 <= y <= (2*x/3)-10):
            new_image[x,y,0] = 255
        elif (60 <= x <=120) and (150 <= y <= 200+math.sqrt(900-(x-90)^2)):
            new_image[x,y,0] = 255
            new_image[x,y,1] = 255
        else:
            new_image[x,y,0] = 255
            new_image[x,y,1] = 255
            new_image[x,y,2] = 255


# First Plot
plt.figure()
plt.imshow(new_image)
plt.axis('off')
plt.show()

1 Ответ

0 голосов
/ 15 февраля 2019

В вашем случае new_image - это массив чисел с плавающей точкой, но когда вы присваиваете значения цвета, вам нужно дать от 0 до 1, но вы даете 255, что является целым числом.

вы можете датьint (0-255) для значений цвета, но ваш массив изображений должен состоять из целых чисел.

, чтобы вы могли избавиться от ошибки, используя

new_image = np.zeros((300, 250, 3), dtype = int)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...