2015-08-30 13 views
6

में कनवर्ट नहीं कर सकता है मैं 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) 

लेकिन जब भी मैं इस कोड चलाने के लिए, मैं प्रदर्शित करने में कोई त्रुटि मिलती है "लेखन त्रुटि: छवि डेटा फ्लोट करने के लिए परिवर्तित नहीं कर सकते" क्या इस के लिए किसी भी समाधान .is।

मैं अपने लिखने में गलतियों के लिए क्षमा चाहता हूं, क्योंकि यह मेरा पहला प्रश्न है जिसे मैंने ऊपर पूछा है।

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

आप पूरी पोस्ट हो सकता है कि यदि:

+1

'A' एक शब्दकोश है, फिर भी आप मानते हैं कि यह प्रदर्शन के लिए एक छवि प्रकार है। यही कारण है कि आप 'TypeError' प्राप्त कर रहे हैं। हालांकि, मैं बहुत उलझन में हूं क्योंकि मुझे नहीं पता कि आप किस छवि लाइब्रेरी का उपयोग कर रहे हैं। आपने 'scikit-image' आयात किया है फिर भी आपने अपनी पोस्ट को पीआईएल का उपयोग करने के रूप में टैग किया है। इसके अलावा, 'imshow' कॉल संदिग्ध है क्योंकि मुझे नहीं पता कि कौन सा पैकेज आता है। आपके 'आयात' बयान में से कोई भी मुझे स्पष्ट नहीं करता है। कृपया अपना प्रश्न संपादित करें कि कौन सा पैकेज 'imshow' आता है और कौन सी छवि लाइब्रेरी आप अपनी पोस्ट के लिए उपयोग करना चाहते हैं। बीटीडब्ल्यू, छवियों को '0' से शुरू किया गया है। – rayryeng

उत्तर

0

मैं क्या scikit छवि डॉक्स (http://scikit-image.org/docs/dev/index.html) की समझ में से, imshow() एक शब्दकोश एक तर्क के रूप में एक ndarray लेता है, और नहीं स्टैक ट्रेस, हम देख सकते हैं कि TypeError imshow() से कहीं गहरा आता है।

0

कोशिश

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

इस

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

यह मेरे लिए हुआ है जब मैं छवि को ही करने के बजाय, एक ImagePath प्लॉट करने के लिए कोशिश कर रहा था की कोशिश करो। फिक्स छवि को लोड करना और इसे साजिश करना था।

0

यह प्रश्न इस प्रकार की त्रुटि के लिए Google खोज में सबसे पहले आता है, लेकिन त्रुटि के कारण के बारे में कोई सामान्य उत्तर नहीं है। पोस्टर की अनूठी समस्या एक अनुचित वस्तु प्रकार का उपयोग plt.imshow() के लिए मुख्य तर्क के रूप में थी। एक और सामान्य जवाब यह है कि plt.imshow() फ्लोट की एक सरणी चाहता है और यदि आप float, numpy, pandas, या जो कुछ भी निर्दिष्ट नहीं करते हैं, तो लाइन के साथ कहीं अलग डेटा प्रकार का अनुमान लगा सकते हैं। dtype तर्क के लिए float निर्दिष्ट करके आप इससे बच सकते हैं तर्क ऑब्जेक्ट का निर्माता है।

Numpy documentation here देखें।

देखें Pandas documentation here

संबंधित मुद्दे