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

<p>я хочу создать 16-битное изображение. итак, я написал код. </p><pre><code> 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) </code></pre><p>но всякий раз, когда я запускаю этот код, я получаю сообщение об ошибке «ошибка ввода: данные изображения не могут быть преобразованы в плавающее». есть ли какое-то решение для этого. </p><p>я прошу прощения за ошибки в моем написании, так как это мой первый вопрос, который я задал выше.</p>

<p>это произошло для меня, когда я пытался построить imagepath вместо самого изображения. исправление состояло в том, чтобы загрузить изображение и построить его.</p>

<p>этот вопрос появляется первым в поиске google для этой ошибки типа, но не имеет общего ответа о причине ошибки. уникальной проблемой автора было использование неподходящего типа объекта в качестве основного аргумента для <code>plt.imshow()</code>. более общий ответ заключается в том, что <code>plt.imshow()</code> хочет массив чисел с плавающей точкой, и если вы не укажете <code>float</code>, numpy, pandas или что-то еще, вы можете определить другой тип данных где-нибудь вдоль строки. вы можете избежать этого, указав <code>float</code> для аргумента <code>dtype</code> конструктор объекта.</p><p>смотрите <a href="https://docs.scipy.org/doc/numpy/reference/generated/numpy.array.html">документацию numpy здесь</a> .</p><p>смотрите <a href="https://pandas.pydata.org/pandas-docs/stable/generated/pandas.dataframe.html#pandas.dataframe">документация панд здесь</a> </p>

<p>ошибка произошла, когда я, не зная, попытался построить путь изображения вместо изображения.</p><p>мой код:</p><pre><code>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) </code></pre><p>исправление: <code>img = cv.imread("fitting.png")</code> ---> это is правильное использование "</p>

<p>из того, что я понимаю из документов scikit-image ( <a href="http://scikit-image.org/docs/dev/index.html">http://scikit-image.org/docs/dev/index.html</a> ), imshow () принимает <strong>ndarray</strong> в качестве аргумента, а не словарь:</p><p> <a href="http://scikit-image.org/docs/dev/api/skimage.io.html?highlight=imshow#skimage.io.imshow">http://scikit-image.org/docs/dev/api/skimage.io.html?highlight=imshow#skimage.io.imshow</a> </p><p>возможно, если вы опубликуете трассировку всего стека, мы увидим, что typeerror происходит где-то глубоко из imshow ().</p>

<p>попробуй это</p><pre><code>>>> plt.imshow(im.reshape(im.shape[0], im.shape[1]), cmap=plt.cm.greys) </code></pre>

<p>пытаться </p><pre><code>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() </code></pre>