85 lines
2.9 KiB
Python
85 lines
2.9 KiB
Python
'''
|
||
现场1:N测试,确定阈值
|
||
'''
|
||
import os
|
||
import numpy as np
|
||
import matplotlib.pyplot as plt
|
||
|
||
|
||
def showHist(filtered_data):
|
||
Same = filtered_data[:, 1].astype(np.float32)
|
||
Cross = filtered_data[:, 2].astype(np.float32)
|
||
|
||
fig, axs = plt.subplots(2, 1)
|
||
axs[0].hist(Same, bins=50, edgecolor='black')
|
||
axs[0].set_xlim([-0.1, 1])
|
||
axs[0].set_title('first')
|
||
|
||
axs[1].hist(Cross, bins=50, edgecolor='black')
|
||
axs[1].set_xlim([-0.1, 1])
|
||
axs[1].set_title('second')
|
||
# plt.savefig('plot.png')
|
||
plt.show()
|
||
|
||
|
||
def get_tartget_list(nested_list):
|
||
filtered_list = np.array(list(filter(lambda x: len(x) >= 2, nested_list))) # 去除无轨迹的数据
|
||
filtered_correct = filtered_list[filtered_list[:, 0] != 'wrong'] # 获取比对正确的时项
|
||
filtered_wrong = filtered_list[filtered_list[:, 0] == 'wrong'] # 获取比对错误的时项
|
||
showHist(filtered_correct)
|
||
# showHist(filtered_wrong)
|
||
print(filtered_list)
|
||
|
||
|
||
def deal_process(file_pth):
|
||
flag = False
|
||
event = file_pth.split('\\')[-2]
|
||
target_barcode = file_pth.split('\\')[-2].split('_')[-1]
|
||
temp_list = []
|
||
|
||
with open(file_pth, 'r') as f:
|
||
for line in f:
|
||
if 'oneToOne' in line:
|
||
flag = True
|
||
continue
|
||
if flag:
|
||
line = line.replace('\n', '')
|
||
comparison_data = line.split(',')
|
||
forecast_barcode = comparison_data[0]
|
||
value = comparison_data[-1].split(':')[-1]
|
||
if value == '':
|
||
break
|
||
if len(temp_list) == 0:
|
||
if forecast_barcode == target_barcode:
|
||
temp_list.append('correct')
|
||
else:
|
||
temp_list.append('wrong')
|
||
temp_list.append(float(value))
|
||
temp_list.append(event)
|
||
return temp_list
|
||
|
||
|
||
def anaylze_scratch(scratch_pth):
|
||
purchase, back = [], []
|
||
for root, dirs, files in os.walk(scratch_pth):
|
||
if len(root) > 0:
|
||
if len(root.split('_')) == 4: # 加购
|
||
process = os.path.join(root, 'process.data')
|
||
if not os.path.exists(process):
|
||
continue
|
||
purchase.append(deal_process(process))
|
||
elif len(root.split('_')) == 3:
|
||
process = os.path.join(root, 'process.data')
|
||
if not os.path.exists(process):
|
||
continue
|
||
back.append(deal_process(process))
|
||
# get_tartget_list(purchase)
|
||
get_tartget_list(back)
|
||
print(purchase)
|
||
|
||
|
||
if __name__ == '__main__':
|
||
# scratch_pth = r'\\192.168.1.28\\share\\测试视频数据以及日志\\各模块测试记录\\展厅测试\\1108_展厅模型v800测试\\'
|
||
scratch_pth = r'\\192.168.1.28\\share\\测试视频数据以及日志\\各模块测试记录\\展厅测试\\1120_展厅模型v801测试\\扫A放A\\'
|
||
anaylze_scratch(scratch_pth)
|