我有一个USB连接网络摄像头,想要将捕获的帧保存到文本文件中。帧是numpy数组,我只需要获得红色值。所以,这是我的代码:
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])
打印告诉我:
[[127 125 125 ...,114 118 101]
[123 126 125 ...,111 112 100]
[129 124 122 ...,116 116 100]
...,
[121 120 121 ...,97 104 88]
[118 121 121 ...,96 103 90]
[116 122 120 ...,97 105 90]]
但即使我可以打印整个阵列,它也不适合终端窗口。 所以我想将其保存到文件中,但 savetxt func无法正常工作。这是test.txt的开头: 1.270000000000000000e + 02 1.250000000000000000e + 02 1.250000000000000000e + 02
等等。
我正在使用OpenCv 3.1和Python 2.7.12
有任何帮助吗?
答案 0 :(得分:1)
savetxt
默认格式为'%.18e'
,说明了您获得的格式。
numpy.savetxt(fname, X, fmt='%.18e', delimiter=' ', newline='\n', header='', footer='', comments='# ')[source]¶
使用fmt
参数更改格式说明符以打印整数而不是浮点数:
savetxt('../test.txt', frame[...,...,2],fmt="%d")