मैं छवि पर व्यक्तियों का पता लगाने की कोशिश कर रहा हूं और उद्देश्य बाउंडिंग बॉक्स और कॉन्फिडेंस वैल्यू की जानकारी को टेक्स्ट फाइल में संबंधित कॉन्फिडेंस और बाउंडिंग बॉक्स के मूल्यों के रूप में सहेज रहा है। लेकिन मुझे त्रुटियां मिलीं TypeError: write() argument must be str, not bytes या TypeError: write() argument must be str, not numpy.ndarray

 for i in np.arange(0, person_detections.shape[2]):
        confidence = person_detections[0, 0, i, 2]
        if confidence > 0.5:
            idx = int(person_detections[0, 0, i, 1])

            if CLASSES[idx] != "person":
                continue

            person_box = person_detections[0, 0, i, 3:7] * np.array([W, H, W, H])
            (startX, startY, endX, endY) = person_box.astype("int")
                        
            preds = np.append(person_box, confidence) # Add confidence to array
            preds_string = preds.tostring() # Convert array to string

            # To convert back to numpy array
            bbox = np.fromstring(preds_string, dtype=int) 
            
            info = open("output.txt","w")
            info.write(bbox)
            info.close

मैं इसे एक टेक्स्ट फ़ाइल में सहेजने और लिखने के लिए नहीं प्राप्त कर सकता, यह मेरा कोड ऊपर है, यदि संभव हो तो मैं किसी भी मदद की सराहना करता हूं, धन्यवाद

-1
Oliver 15 नवम्बर 2020, 13:25

1 उत्तर

सबसे बढ़िया उत्तर

त्रुटि आपको बताती है कि आप numpy.ndarray प्रकार की वस्तु को write में पास नहीं कर सकते (अर्थात, आप अपनी सरणी को टेक्स्ट फ़ाइल में उस तरह से नहीं लिख सकते जिस तरह से आप इसे करने का प्रयास कर रहे हैं)। numpy के पास इसके लिए कार्य हैं (देखें numpy.savetxt )।

>>> import numpy as np
>>>
>>> preds_string = '1 2'
>>> bbox = np.fromstring(preds_string, dtype=int, sep=' ')
>>>
>>> with open("output.txt","w") as info:
...     np.savetxt(info, bbox, fmt='%d')
... 
$ cat output.txt      
1
2
1
Nikolaos Chatzis 15 नवम्बर 2020, 10:50