我的代码遍历视频中的帧,并对我之前在每个帧中选择的一组 x、y 点进行采样。 x,y 点包含在 boxes 中。
对于视频中的每一帧,我想在一行上打印 len(boxes) 像素值,它们之间有制表符,然后是下一帧的回车符。我实际上在这里对像素值进行了一些比率计算,但这并不真正相关。我只需要在我想要的位置获得带有制表符的输出,而不是回车符。
print("size of boxes: ", len(boxes))
for i in range (0, video.__len__(), 2):
for j in range(0, len(boxes)):
print(str(float(video[i][boxes[j]])/(video[i+1][boxes[j]])) + str('\t'))
print('\n')
我得到这个而不是我想要的制表符分隔的 7 组:
('size of boxes: ', 7)
0.485893416928
0.602201257862
0.584277620397
0.759312320917
0.663671373556
0.70249017038
0.724576271186
0.496379726468
0.632218844985
0.532608695652
0.699738903394
0.731774415406
0.693527080581
0.772058823529
请您参考如下方法:
使用 end 参数打印以覆盖打印换行符的默认行为:
print(video[i][boxes[j]] / video[i+1][boxes[j]], end='\t')
请注意,如果这是 python 3,则 float 也应该是不必要的。如果您使用的是 python 2,则可以通过以下方式获得所有相关功能:
from __future__ import print_function, division
如果我写这个,我会这样做:
s = '\n'.join(
'\t'.join(
str(v1[b] / v2[b])
for b in boxes
)
for v1, v2 in zip(video[0::2], video[1::2])
)
print(s)
