vector<int> not_assigned_detections; vector<int>::iterator it; for(int i=0;i<detections.size();i++) { it=find(assignment.begin(), assignment.end(), i); if(it==assignment.end()) { not_assigned_detections.push_back(i); } }
时间: 2023-06-17 12:03:52 浏览: 35
这段代码的作用是将未被分配的检测结果的索引存储在一个名为 `not_assigned_detections` 的向量中。具体来说,这段代码首先创建一个空的向量 `not_assigned_detections`,然后遍历所有检测结果,查找它们是否被分配给任何一个跟踪器。如果某个检测结果的索引未在 `assignment` 向量中出现,那么说明它未被分配,因此将它的索引存储在 `not_assigned_detections` 向量中。最后,`not_assigned_detections` 向量中存储的就是所有未被分配的检测结果的索引。
相关问题
if(not_assigned_detections.size()!=0) { for(int i=0;i<not_assigned_detections.size();i++) { CTrack* tr=new CTrack(detections[not_assigned_detections[i]],dt,Accel_noise_mag); tracks.push_back(tr); } }
这段代码是一个目标跟踪算法中的一部分。首先,通过检测算法检测到一些目标,然后将这些目标与已经跟踪的目标进行匹配,从而确定哪些目标需要被更新跟踪,哪些目标是新的需要被跟踪的目标。
在这段代码中,如果存在未匹配的检测目标,则将其作为新的目标跟踪。对于每个未匹配的检测目标,创建一个新的跟踪器对象(CTrack),并将其添加到跟踪器列表(tracks)中。跟踪器对象包含目标的状态信息、跟踪器的ID、以及一些其他的属性。在后续的跟踪过程中,会使用这些信息来更新跟踪器的状态,以及确定哪些跟踪器需要被删除。
需要注意的是,这段代码只处理未匹配的检测目标,已经匹配的目标会被更新跟踪,而不会被处理。这是因为已经匹配的目标会被分配到对应的跟踪器对象中进行处理。
运行报错The argument type 'List<int>?' can't be assigned to the parameter type 'List<int>'.dart
这个错误通常是由于将一个可空类型的变量赋值给了不可空类型的变量引起的。在Dart中,如果你声明了一个变量类型为`List<int>`,那么这个变量必须是不可空的,即不能为null。如果你尝试将一个可空类型的变量赋值给它,就会出现上述错误。
因此,你需要在将`excel.encode()`返回的可空类型`List<int>?`转换为不可空类型`List<int>`时进行非空判断。以下是修改后的代码:
```dart
Future<void> exportToExcel(List<List<dynamic>> data) async {
// 获取应用文档目录
final directory = await getApplicationDocumentsDirectory();
final path = directory.path;
// 创建一个新的Excel文档
final excel = Excel.createExcel();
final sheet = excel['Sheet1'];
// 将数据写入Excel文档
for (var i = 0; i < data.length; i++) {
final row = sheet.addRow(data[i]);
row.cellStyle = CellStyle(backgroundColorHex: '#FFFFFF');
}
// 保存Excel文档
final file = File('$path/data.xlsx');
final bytes = excel.encode();
if (bytes != null) {
await file.writeAsBytes(bytes);
}
// 删除CSV文件
await file.delete();
}
```
在这个例程中,我们将`excel.encode()`返回的可空类型`List<int>?`赋值给了一个新的变量`bytes`,然后在`if (bytes != null)`中进行了非空判断。只有在`bytes`不为null时,才将其写入文件。
这样就可以避免上述错误了。