2016-10-09 6 views
1

Ich habe eine USB-Webcam angeschlossen und möchte den aufgenommenen Frame in eine Textdatei speichern. Frame ist ein numpy Array und ich brauche nur rote Farbwerte. So, hier ist mein Code:OpenCV: Frame-Matrix in Textdatei speichern (Python)

vc = cv2.VideoCapture(1) 

if vc.isOpened(): 
    rval, frame = vc.read() 
    frame = imutils.resize(frame, width=640, height=480) 
    print(frame[...,...,2]) 
    savetxt('../test.txt', frame[...,...,2]) 

Druck wird mir dies:

[[127 125 125 ... 114 118 101]

[123 126 125 ... 111 112 100]

[129 124 122 ... 116 116 100]

...,

[121 120 121 ... 104 97 88]

[118 121 121 ..., 103 96 90]

[116 122 120 ..., 105 97 90]]

Aber selbst wenn ich das gesamte Array drucken könnte, passt es nicht Terminal-Fenster. Also ich möchte es in Datei speichern, aber savetxt Funktion funktioniert nicht wie ich will. Hier ist der Anfang von test.txt: 1.270000000000000000e + 02 1.250000000000000000e + 02 1.250000000000000000e + 02

und so weiter.

Ich bin mit OpenCV 3.1 und Python 2.7.12

Jede Hilfe?

Antwort

1

savetxt Standardformat ist '%.18e', das das Format erklärt, das Sie bekommen.

numpy.savetxt(fname, X, fmt='%.18e', delimiter=' ', newline='\n', header='', footer='', comments='# ')[source]¶ 

Ändern der Formatangabe mit fmt Parametern ganze Zahlen anstelle von Schwimmern zu drucken:

savetxt('../test.txt', frame[...,...,2],fmt="%d") 
+1

Es Ordnung, vielen Dank funktioniert! – askrav