it-swarm.com.ru

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

Я хочу создать 16-битное изображение. Итак, я написал код. 

     import skimage 
     import random
     from random import randint                        
     xrow=raw_input("Enter the number of rows to be present in image.=>")
     row=int(xrow)
     ycolumn=raw_input("Enter the number of columns to be present in image.=>")
     column=int(ycolumn)

       A={}
       for x in xrange(1,row):
           for y in xrange(1,column):
               a=randint(0,65535)
               A[x,y]=a 

       imshow(A)

Но всякий раз, когда я запускаю этот код, я получаю сообщение об ошибке «Ошибка ввода: данные изображения не могут быть преобразованы в плавающее». Есть ли какое-то решение для этого. 

Я прошу прощения за ошибки в моем написании, так как это мой первый вопрос, который я задал выше.

13
Shubham Chahal

Это произошло для меня, когда я пытался построить imagePath вместо самого изображения. Исправление состояло в том, чтобы загрузить изображение и построить его.

11
mastDrinkNimbuPani

Этот вопрос появляется первым в поиске Google для этой ошибки типа, но не имеет общего ответа о причине ошибки. Уникальной проблемой автора было использование неподходящего типа объекта в качестве основного аргумента для plt.imshow(). Более общий ответ заключается в том, что plt.imshow() хочет массив чисел с плавающей точкой, и если вы не укажете float, numpy, pandas или что-то еще, вы можете определить другой тип данных где-нибудь вдоль строки. Вы можете избежать этого, указав float для аргумента dtype конструктор объекта.

Смотрите документацию Numpy здесь .

Смотрите Документация Панд здесь

11
comet

Ошибка произошла, когда я, не зная, попытался построить путь изображения вместо изображения.

Мой код:

import cv2 as cv
from matplotlib import pyplot as plt
import pytesseract
from resizeimage import resizeimage

img = cv.imread("D:\TemplateMatch\\fitting.png") ------>"THIS IS THE WRONG USAGE"
#cv.rectangle(img,(29,2496),(604,2992),(255,0,0),5)
plt.imshow(img)

Исправление: img = cv.imread("fitting.png") ---> ЭТО IS ПРАВИЛЬНОЕ ИСПОЛЬЗОВАНИЕ "

1
spurthi

Из того, что я понимаю из документов scikit-image ( http://scikit-image.org/docs/dev/index.html ), imshow () принимает ndarray в качестве аргумента, а не словарь:

http://scikit-image.org/docs/dev/api/skimage.io.html?highlight=imshow#skimage.io.imshow

Возможно, если вы опубликуете трассировку всего стека, мы увидим, что TypeError происходит где-то глубоко из imshow ().

1
Michiel Overtoom

Попробуй это

>>> plt.imshow(im.reshape(im.shape[0], im.shape[1]), cmap=plt.cm.Greys)
1
GoingMyWay

пытаться 

import skimage
import random
from random import randint
import numpy as np
import matplotlib.pyplot as plt


xrow = raw_input("Enter the number of rows to be present in image.=>")
row = int(xrow)
ycolumn = raw_input("Enter the number of columns to be present in image.=>")
column = int(ycolumn)

A = np.zeros((row,column))
for x in xrange(1, row):
    for y in xrange(1, column):
        a = randint(0, 65535)
        A[x, y] = a

plt.imshow(A)
plt.show()
0
ntg