2015-08-30 10 views
6

Tôi muốn tạo hình ảnh 16 bit. Vì vậy, tôi đã viết một mã.LoạiError: Dữ liệu hình ảnh không thể chuyển đổi thành phao

 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) 

Nhưng bất cứ khi nào tôi chạy mã này, tôi gặp lỗi hiển thị "Loại lỗi: Dữ liệu hình ảnh không thể chuyển thành nổi". Có giải pháp cho việc này.

Tôi xin lỗi vì những sai lầm trong bài viết của mình, vì đây là câu hỏi đầu tiên của tôi mà tôi đã hỏi ở trên.

+1

'A' là từ điển, nhưng bạn cho rằng đó là loại hình ảnh để hiển thị. Đó là lý do tại sao bạn nhận được 'TypeError'. Tuy nhiên, tôi rất bối rối vì tôi không biết bạn đang sử dụng thư viện hình ảnh nào. Bạn đã nhập 'scikit-image' nhưng bạn đã gắn thẻ bài đăng của mình là sử dụng PIL. Ngoài ra, lệnh gọi imshow' không rõ ràng vì tôi không biết gói nào đến từ đó. Không có câu lệnh 'import' nào làm rõ điều đó với tôi. Vui lòng chỉnh sửa câu hỏi của bạn để giải quyết gói 'imshow' nào đến và thư viện hình ảnh nào bạn muốn sử dụng cho bài đăng của mình. BTW, hình ảnh được lập chỉ mục bắt đầu từ '0'. – rayryeng

Trả lời

0

thử

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() 
1

Hãy thử điều này

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

Điều này xảy ra cho tôi khi tôi đã cố gắng để vẽ một ImagePath, thay vì hình ảnh riêng của mình. Bản sửa lỗi là tải hình ảnh và vẽ nó.

0

Câu hỏi này xuất hiện đầu tiên trong tìm kiếm của Google về lỗi loại này, nhưng không có câu trả lời chung về nguyên nhân gây ra lỗi. Vấn đề duy nhất của poster là việc sử dụng một kiểu đối tượng không thích hợp làm đối số chính cho plt.imshow(). Một câu trả lời chung hơn là plt.imshow() muốn một mảng nổi và nếu bạn không chỉ định một số float, numpy, gấu trúc hoặc bất kỳ thứ gì khác, có thể suy ra một loại dữ liệu khác ở đâu đó dọc theo dòng. Bạn có thể tránh điều này bằng cách chỉ định một số float cho đối số dtype là hàm tạo của đối tượng.

Xem Numpy documentation here.

Xem Pandas documentation here

Các vấn đề liên quan