Commit cee436d581d447b5c880b6b35718a157dc58abac
1 parent
531d44a1
完成道路信息返回
Showing
1 changed file
with
49 additions
and
9 deletions
jni/VehicleNativeInterface.cpp
@@ -329,6 +329,9 @@ JNIEXPORT jint JNICALL Java_com_objecteye_nativeinterface_vehicle_VehicleNativeI | @@ -329,6 +329,9 @@ JNIEXPORT jint JNICALL Java_com_objecteye_nativeinterface_vehicle_VehicleNativeI | ||
329 | // getClass | 329 | // getClass |
330 | jclass cls_vehicleAnalysisResult = env->FindClass("com/objecteye/pojo/vehicle/VehicleAnalysisResultParam"); | 330 | jclass cls_vehicleAnalysisResult = env->FindClass("com/objecteye/pojo/vehicle/VehicleAnalysisResultParam"); |
331 | jclass cls_VehicleInfo = env->FindClass("com/objecteye/pojo/vehicle/VehicleInfoParam"); | 331 | jclass cls_VehicleInfo = env->FindClass("com/objecteye/pojo/vehicle/VehicleInfoParam"); |
332 | + jclass cls_LineInfo = env->FindClass("com/objecteye/pojo/vehicle/LineInfoParam"); | ||
333 | + jclass cls_SegInfo = env->FindClass("com/objecteye/pojo/vehicle/SegInfoParam"); | ||
334 | + | ||
332 | jclass cls_VehicleDetectResult = env->FindClass("com/objecteye/pojo/vehicle/VehicleDetectResultParam"); | 335 | jclass cls_VehicleDetectResult = env->FindClass("com/objecteye/pojo/vehicle/VehicleDetectResultParam"); |
333 | jclass cls_VehicleColorResult = env->FindClass("com/objecteye/pojo/vehicle/VehicleColorResultParam"); | 336 | jclass cls_VehicleColorResult = env->FindClass("com/objecteye/pojo/vehicle/VehicleColorResultParam"); |
334 | jclass cls_VehicleRecgResult = env->FindClass("com/objecteye/pojo/vehicle/VehicleRecognizeResultParam"); | 337 | jclass cls_VehicleRecgResult = env->FindClass("com/objecteye/pojo/vehicle/VehicleRecognizeResultParam"); |
@@ -349,16 +352,16 @@ JNIEXPORT jint JNICALL Java_com_objecteye_nativeinterface_vehicle_VehicleNativeI | @@ -349,16 +352,16 @@ JNIEXPORT jint JNICALL Java_com_objecteye_nativeinterface_vehicle_VehicleNativeI | ||
349 | jclass cls_MtaDetailsParam = env->FindClass("com/objecteye/pojo/vehicle/MtaDetailsParam"); | 352 | jclass cls_MtaDetailsParam = env->FindClass("com/objecteye/pojo/vehicle/MtaDetailsParam"); |
350 | //jclass cls_StainVplateResultParam = env->FindClass("com/objecteye/pojo/vehicle/StainVplateResultParam"); | 353 | //jclass cls_StainVplateResultParam = env->FindClass("com/objecteye/pojo/vehicle/StainVplateResultParam"); |
351 | jclass cls_MannedResultParam = env->FindClass("com/objecteye/pojo/vehicle/MannedResultParam"); | 354 | jclass cls_MannedResultParam = env->FindClass("com/objecteye/pojo/vehicle/MannedResultParam"); |
352 | - //jclass cls_SyPoint = env->FindClass("com/objecteye/pojo/common/SyPointParam");//wh20210601������pose��� | 355 | + |
353 | //jclass cls_VehiclePoseResultParam = env->FindClass("com/objecteye/pojo/vehicle/VehiclePoseResultParam");//wh20210601������pose��� | 356 | //jclass cls_VehiclePoseResultParam = env->FindClass("com/objecteye/pojo/vehicle/VehiclePoseResultParam");//wh20210601������pose��� |
354 | 357 | ||
355 | - //cout << "1111111111111111111" << endl; | 358 | + jclass cls_SyPoint = env->FindClass("com/objecteye/pojo/common/SyPointParam"); |
356 | 359 | ||
357 | 360 | ||
358 | //getmethodId | 361 | //getmethodId |
359 | - jmethodID mid_vehicleAnalysisResult = env->GetMethodID(cls_vehicleAnalysisResult, "<init>", "([Lcom/objecteye/pojo/vehicle/VehicleInfoParam;I)V"); | 362 | + jmethodID mid_vehicleAnalysisResult = env->GetMethodID(cls_vehicleAnalysisResult, "<init>", "([Lcom/objecteye/pojo/vehicle/VehicleInfoParam;com/objecteye/pojo/vehicle/LineInfoParam;com/objecteye/pojo/vehicle/SegInfoParam;I)V"); |
360 | 363 | ||
361 | - jmethodID mid_VehicleInfo = env->GetMethodID(cls_VehicleInfo, "<init>", "(Lcom/objecteye/pojo/vehicle/VehicleDetectResultParam;Lcom/objecteye/pojo/vehicle/VehicleDetectResultParam;Lcom/objecteye/pojo/vehicle/VehicleDetectResultParam;Lcom/objecteye/pojo/vehicle/VehicleColorResultParam;Lcom/objecteye/pojo/vehicle/VehicleRecognizeResultParam;Lcom/objecteye/pojo/vehicle/VehiclePlateResultParam;Lcom/objecteye/pojo/vehicle/VehiclePendantDetectResultParam;Lcom/objecteye/pojo/vehicle/VehicleIllegalDetectResultParam;Lcom/objecteye/pojo/vehicle/VehicleFeatureResultParam;Lcom/objecteye/pojo/vehicle/MtaResultParam;Lcom/objecteye/pojo/vehicle/MannedResultParam;I)V"); | 364 | + jmethodID mid_VehicleInfo = env->GetMethodID(cls_VehicleInfo, "<init>", "(Lcom/objecteye/pojo/vehicle/VehicleDetectResultParam;Lcom/objecteye/pojo/vehicle/VehicleDetectResultParam;Lcom/objecteye/pojo/vehicle/VehicleDetectResultParam;Lcom/objecteye/pojo/vehicle/VehicleColorResultParam;Lcom/objecteye/pojo/vehicle/VehicleRecognizeResultParam;Lcom/objecteye/pojo/vehicle/VehiclePlateResultParam;Lcom/objecteye/pojo/vehicle/VehiclePendantDetectResultParam;Lcom/objecteye/pojo/vehicle/VehicleIllegalDetectResultParam;Lcom/objecteye/pojo/vehicle/VehicleFeatureResultParam;Lcom/objecteye/pojo/vehicle/MtaResultParam;Lcom/objecteye/pojo/vehicle/MannedResultParam;I;I;I;I;I;I;I;I;I;I;I)V"); |
362 | 365 | ||
363 | jmethodID mid_VehicleDetectResult = env->GetMethodID(cls_VehicleDetectResult, "<init>", "(Lcom/objecteye/pojo/common/SyRectParam;F)V"); | 366 | jmethodID mid_VehicleDetectResult = env->GetMethodID(cls_VehicleDetectResult, "<init>", "(Lcom/objecteye/pojo/common/SyRectParam;F)V"); |
364 | jmethodID mid_VehicleColorResult = env->GetMethodID(cls_VehicleColorResult, "<init>", "(FI)V"); | 367 | jmethodID mid_VehicleColorResult = env->GetMethodID(cls_VehicleColorResult, "<init>", "(FI)V"); |
@@ -382,17 +385,18 @@ JNIEXPORT jint JNICALL Java_com_objecteye_nativeinterface_vehicle_VehicleNativeI | @@ -382,17 +385,18 @@ JNIEXPORT jint JNICALL Java_com_objecteye_nativeinterface_vehicle_VehicleNativeI | ||
382 | //jmethodID mid_StainVplateResultParam = env->GetMethodID(cls_StainVplateResultParam, "<init>", "(FI)V"); | 385 | //jmethodID mid_StainVplateResultParam = env->GetMethodID(cls_StainVplateResultParam, "<init>", "(FI)V"); |
383 | //jmethodID mid_MucktruckcoverResult = env->GetMethodID(cls_MucktruckcoverResult, "<init>", "(IF)V"); | 386 | //jmethodID mid_MucktruckcoverResult = env->GetMethodID(cls_MucktruckcoverResult, "<init>", "(IF)V"); |
384 | jmethodID mid_MannedResult = env->GetMethodID(cls_MannedResultParam, "<init>", "([Lcom/objecteye/pojo/vehicle/VehicleDetectResultParam;I)V");//wh20220222 | 387 | jmethodID mid_MannedResult = env->GetMethodID(cls_MannedResultParam, "<init>", "([Lcom/objecteye/pojo/vehicle/VehicleDetectResultParam;I)V");//wh20220222 |
385 | - //jmethodID mid_SyPoint = env->GetMethodID(cls_SyPoint, "<init>", "(II)V");//wh20210601������pose��� | 388 | + jmethodID mid_SyPoint = env->GetMethodID(cls_SyPoint, "<init>", "(II)V");//wh20210601������pose��� |
386 | //jmethodID mid_VehiclePoseResult = env->GetMethodID(cls_VehiclePoseResultParam, "<init>", "([Lcom/objecteye/pojo/common/SyPointParam;[F[FDDD)V"); | 389 | //jmethodID mid_VehiclePoseResult = env->GetMethodID(cls_VehiclePoseResultParam, "<init>", "([Lcom/objecteye/pojo/common/SyPointParam;[F[FDDD)V"); |
387 | - | ||
388 | - //cout << "2222222222222222222" << endl; | 390 | + |
391 | + jmethodID mid_LineInfo = env->GetMethodID(cls_LineInfo, "<init>", "(Lcom/objecteye/pojo/vehicle/SyPointParam;I)V"); | ||
392 | + jmethodID mid_SegInfo = env->GetMethodID(cls_SegInfo, "<init>", "(Lcom/objecteye/pojo/vehicle/SyPointParam;I)V"); | ||
393 | + | ||
389 | //set value to param | 394 | //set value to param |
390 | 395 | ||
391 | 396 | ||
392 | for (size_t i = 0; i < batchSize; i++) | 397 | for (size_t i = 0; i < batchSize; i++) |
393 | { | 398 | { |
394 | jobjectArray vehicleInfoArray = env->NewObjectArray(vec_result[i].info.size(), cls_VehicleInfo, NULL); | 399 | jobjectArray vehicleInfoArray = env->NewObjectArray(vec_result[i].info.size(), cls_VehicleInfo, NULL); |
395 | - | ||
396 | for (int j = 0; j < vec_result[i].info.size(); j++) | 400 | for (int j = 0; j < vec_result[i].info.size(); j++) |
397 | { //vehicleDetectRes | 401 | { //vehicleDetectRes |
398 | auto vehicle_info = vec_result[i].info[j]; | 402 | auto vehicle_info = vec_result[i].info[j]; |
@@ -546,7 +550,43 @@ JNIEXPORT jint JNICALL Java_com_objecteye_nativeinterface_vehicle_VehicleNativeI | @@ -546,7 +550,43 @@ JNIEXPORT jint JNICALL Java_com_objecteye_nativeinterface_vehicle_VehicleNativeI | ||
546 | env->SetObjectArrayElement(vehicleInfoArray, j, vehicleInfo); | 550 | env->SetObjectArrayElement(vehicleInfoArray, j, vehicleInfo); |
547 | } | 551 | } |
548 | 552 | ||
549 | - jobject vehicleAnalysisResult = env->NewObject(cls_vehicleAnalysisResult, mid_vehicleAnalysisResult, vehicleInfoArray, vec_result[i].info.size()); | 553 | + // 道路标志线 |
554 | + jobjectArray LineInfoArray = env->NewObjectArray(vec_result[i].vec_line.size(), cls_LineInfo, NULL); | ||
555 | + for (int j = 0; j < vec_result[i].vec_line.size(); j++) | ||
556 | + { | ||
557 | + auto line_info = vec_result[i].vec_line[j]; | ||
558 | + jobjectArray ptArray = env->NewObjectArray(line_info.vec_pt.size(), cls_LineInfo, NULL); | ||
559 | + for (int k = 0; k < line_info.vec_pt.size(); k++) | ||
560 | + { | ||
561 | + auto pt = line_info.vec_pt[k]; | ||
562 | + jobject line_info_point = env->NewObject(cls_SyPoint, mid_SyPoint, pt.x_, pt.y_); | ||
563 | + env->SetObjectArrayElement(ptArray, k, line_info_point); | ||
564 | + } | ||
565 | + | ||
566 | + jobject one_line_info = env->NewObject(cls_LineInfo, mid_LineInfo, ptArray, line_info.line_type); | ||
567 | + | ||
568 | + env->SetObjectArrayElement(LineInfoArray, j, one_line_info); | ||
569 | + } | ||
570 | + | ||
571 | + // 道路 | ||
572 | + jobjectArray RoadInfoArray = env->NewObjectArray(vec_result[i].vec_road.size(), cls_SegInfo, NULL); | ||
573 | + for (int j = 0; j < vec_result[i].vec_road.size(); j++) | ||
574 | + { | ||
575 | + auto road_info = vec_result[i].vec_road[j]; | ||
576 | + jobjectArray ptArray = env->NewObjectArray(road_info.vec_pt.size(), cls_SyPoint, NULL); | ||
577 | + for (int k = 0; k < road_info.vec_pt.size(); k++) | ||
578 | + { | ||
579 | + auto pt = road_info.vec_pt[k]; | ||
580 | + jobject road_info_point = env->NewObject(cls_SyPoint, mid_SyPoint, pt.x_, pt.y_); | ||
581 | + env->SetObjectArrayElement(ptArray, k, road_info_point); | ||
582 | + } | ||
583 | + | ||
584 | + jobject one_road_info = env->NewObject(cls_SegInfo, mid_SegInfo, ptArray, road_info.seg_type); | ||
585 | + | ||
586 | + env->SetObjectArrayElement(RoadInfoArray, j, one_road_info); | ||
587 | + } | ||
588 | + | ||
589 | + jobject vehicleAnalysisResult = env->NewObject(cls_vehicleAnalysisResult, mid_vehicleAnalysisResult, vehicleInfoArray, LineInfoArray, RoadInfoArray, vec_result[i].info.size()); | ||
550 | env->SetObjectArrayElement(vehicleAnalysisResultParams, i, vehicleAnalysisResult); | 590 | env->SetObjectArrayElement(vehicleAnalysisResultParams, i, vehicleAnalysisResult); |
551 | } | 591 | } |
552 | 592 |