Je veux créer une image 16 bits. Donc j'ai écrit un 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)
Mais chaque fois que j'exécute ce code, un message d'erreur indiquant "TypeError: les données d'image ne peuvent pas être converties en flottant" s'affiche.
Je m'excuse pour les erreurs dans mon écriture, car c'est ma première question que j'ai posée ci-dessus.
Cela m'est arrivé lorsque j'ai essayé de tracer un chemin imagePath au lieu de l'image elle-même. Le correctif consistait à charger l'image et à la représenter.
Cette question revient en premier dans la recherche Google pour ce type d'erreur, mais n'a pas de réponse générale sur la cause de l'erreur. Le problème unique de l'affiche était l'utilisation d'un type d'objet inapproprié comme principal argument de plt.imshow()
. Une réponse plus générale est que plt.imshow()
veut un tableau de flottants et que, si vous ne spécifiez pas float
, numpy, pandas ou autre, peut déduire un type de données différent quelque part dans la ligne. Vous pouvez éviter cela en spécifiant un float
pour l'argument dtype
est le constructeur de l'objet.
Voir la documentation Numpy ici .
Voir la documentation Pandas ici
L'erreur s'est produite lorsque, sans le savoir, j'ai essayé de tracer le chemin de l'image à la place de l'image.
Mon 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)
Correction: img = cv.imread("fitting.png")
---> CECI IS LE BON USAGE "
D'après ce que je comprends des documents scikit-image ( http://scikit-image.org/docs/dev/index.html ), imshow () prend un ndarray comme argument, et non un dictionnaire:
http://scikit-image.org/docs/dev/api/skimage.io.html?highlight=imshow#skimage.io.imshow
Peut-être que si vous publiez toute la trace de la pile, nous pourrions voir que le TypeError vient quelque part de profondément de imshow ().
Essaye ça
>>> plt.imshow(im.reshape(im.shape[0], im.shape[1]), cmap=plt.cm.Greys)
essayer
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()