क्या कोई यह समझा सकता है कि सीवी और numpy आयात क्यों पाइथन की struct.unpack के व्यवहार को बदल देगा?ओपनसीवी और न्यूम्पी बुरी तरह से बातचीत कर रहे हैं
Python 2.7.3 (default, Aug 1 2012, 05:14:39)
[GCC 4.6.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> from struct import pack, unpack
>>> unpack("f",pack("I",31))[0]
4.344025239406933e-44
यह सही
>>> import cv
libdc1394 error: Failed to initialize libdc1394
>>> unpack("f",pack("I",31))[0]
4.344025239406933e-44
फिर भी ठीक है, सीवी आयात करने
>>> import numpy
>>> unpack("f",pack("I",31))[0]
4.344025239406933e-44
के बाद और सीवी आयात करने के बाद ठीक है और फिर numpy
अब मैं पुनः आरंभ: यहाँ मैं क्या निरीक्षण है पायथन:
Python 2.7.3 (default, Aug 1 2012, 05:14:39)
[GCC 4.6.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> from struct import pack, unpack
>>> unpack("f",pack("I",31))[0]
4.344025239406933e-44
>>> import numpy
>>> unpack("f",pack("I",31))[0]
4.344025239406933e-44
अब तक तो अच्छा, लेकिन अब मैं numpy आयात करने के बाद सीवी आयात:
>>> import cv
libdc1394 error: Failed to initialize libdc1394
>>> unpack("f",pack("I",31))[0]
0.0
मैं इस एकाधिक सर्वर पर सहित कई बार दोहराया गया है, और यह हमेशा एक ही तरह से चला जाता है। मैंने struct.unpack और struct.pack के साथ भी कोशिश की है, जो भी कोई फर्क नहीं पड़ता।
मैं समझ नहीं पा रहा हूं कि numpy और cv को आयात करने से struct.unpack के आउटपुट पर कोई प्रभाव हो सकता है (पैक वही रहता है, बीटीडब्ल्यू)।
"libdc1394" बात यह है कि मुझे विश्वास है, एक लाल हेरिंग: ctypes error: libdc1394 error: Failed to initialize libdc1394
कोई भी विचार?
tl; dr: numpy आयात करना और फिर opencv struct.unpack के व्यवहार को बदलता है।
अद्यतन: नीचे पाउलो का जवाब दिखाता है कि यह पुनरुत्पादित है। सेबॉर्ग की टिप्पणी से पता चलता है कि पाइथन उपनिवेशों को संभालने के तरीके से कुछ करना है, जो व्यावहारिक लगता है। मैंने Contexts में देखा लेकिन यह समस्या नहीं प्रतीत होती, क्योंकि संदर्भ आयात के बाद ही था जैसा कि उनके सामने था।
यह आपको मदद करने के लिए नहीं जा रहा है, लेकिन सिर्फ पठनीयता के कारण और समस्या को सरल बनाने, 'खोल करता है (" f ", पैक (" मैं ", 31))' एक ही परिणाम का उत्पादन? –
@PauloAlmeida: अच्छा बिंदु। बस कोशिश की - हाँ, वही परिणाम ... मैं इसे पढ़ने में आसान बनाने के लिए प्रश्न संपादित करूँगा ... – Ben