| | |
| | | vpt_pic_init(&m_handle, m_param); |
| | | } |
| | | |
| | | void VptDetectWrapper::process_image(cv::Mat &_img) { |
| | | list<VptDetectResults> VptDetectWrapper::process_image(cv::Mat &_img) { |
| | | m_results.clear(); |
| | | |
| | | sy_img img; |
| | |
| | | result.info[i].obj_rect.width_, result.info[i].obj_rect.height_); |
| | | } else {} |
| | | } |
| | | //release source |
| | | if (result.info != NULL) { |
| | | for (int i = 0; i < MAX_DET_COUNT; i++) { |
| | | if (result.info[i].analysis_res != NULL) { |
| | | delete result.info[i].analysis_res; |
| | | result.info[i].analysis_res = NULL; |
| | | } |
| | | } |
| | | delete[] result.info; |
| | | result.info = NULL; |
| | | } |
| | | DBG(m_results.size()); |
| | | return m_results; |
| | | } |
| | | |
| | | VptDetectResults VptDetectWrapper::changeAnalysisRes(int index, void *result) { |
| | | |
| | | VptDetectResults vptDetectResults; |
| | | VptDetectResults vptDetectResults(index); |
| | | vptDetectResults.sdkDetectType = static_cast<SDKDetectType>(index); |
| | | // vptDetectResults.vptDetectRes.carDetectRes; |
| | | switch (vptDetectResults.sdkDetectType) { |
| | |
| | | for (int i = 0; i < HP_FIR_INDEX_SIZE; i++) { |
| | | int resIndex = vptDetectResults.vptDetectRes.personDetectRes.res_objs[i].res_index; |
| | | cout << vptDetectResults.vptDetectRes.personDetectRes.res_objs[i].res_prob << " "; |
| | | cout << HpResStr[i][resIndex] << " " << endl; |
| | | cout << HpResStr[i][resIndex] << " "; |
| | | } |
| | | //test code end |
| | | }; |
| | |
| | | hcp_res *cur_res = (hcp_res *) result; |
| | | memcpy(vptDetectResults.vptDetectRes.perRideCarDetectRes.res_objs, cur_res->res_objs, |
| | | sizeof(classfy_boj_res) * HCP_FIR_INDEX_SIZE); |
| | | //test code |
| | | for (int i = 0; i < HCP_FIR_INDEX_SIZE; i++) { |
| | | int resIndex = vptDetectResults.vptDetectRes.perRideCarDetectRes.res_objs[i].res_index; |
| | | cout << vptDetectResults.vptDetectRes.perRideCarDetectRes.res_objs[i].res_prob << " "; |
| | | cout << HpResStr[i][resIndex] << " " << endl; |
| | | cout << HpResStr[i][resIndex] << " "; |
| | | } |
| | | cout << endl << endl; |
| | | //test code |
| | | }; |
| | | break; |
| | | case SDKDetectType::car : |
| | |
| | | |
| | | // 车型识别 |
| | | if (cur_res->vr_res.vehicle_brand != NULL) { |
| | | // cout << " 车辆品牌 - " << cur_res->vr_res.vehicle_brand << endl; |
| | | carRes.vehicle_brand = std::move(string(cur_res->vr_res.vehicle_brand)); |
| | | cout << " 车辆品牌 - " << cur_res->vr_res.vehicle_brand << endl; |
| | | carRes.vehicle_brand = cur_res->vr_res.vehicle_brand; |
| | | // carRes.vehicle_brand = string(cur_res->vr_res.vehicle_brand); |
| | | // carRes.vehicle_brand = "发"; |
| | | delete[] cur_res->vr_res.vehicle_brand; |
| | | cur_res->vr_res.vehicle_brand = NULL; |
| | | } |
| | | if (cur_res->vr_res.vehicle_subbrand != NULL) { |
| | | // cout << " 车辆子品牌 - " << cur_res->vr_res.vehicle_subbrand << endl; |
| | | carRes.vehicle_subbrand = std::move(string(cur_res->vr_res.vehicle_subbrand)); |
| | | cout << " 车辆子品牌 - " << cur_res->vr_res.vehicle_subbrand << endl; |
| | | carRes.vehicle_subbrand = cur_res->vr_res.vehicle_subbrand; |
| | | // carRes.vehicle_subbrand = cur_res->vr_res.vehicle_subbrand; |
| | | delete[] cur_res->vr_res.vehicle_subbrand; |
| | | cur_res->vr_res.vehicle_subbrand = NULL; |
| | | } |
| | | if (cur_res->vr_res.vehicle_issue_year != NULL) { |
| | | // cout << " 车辆年款 - " << cur_res->vr_res.vehicle_issue_year << endl; |
| | | carRes.vehicle_issue_year = std::move(string(cur_res->vr_res.vehicle_issue_year)); |
| | | cout << " 车辆年款 - " << cur_res->vr_res.vehicle_issue_year << endl; |
| | | carRes.vehicle_issue_year = cur_res->vr_res.vehicle_issue_year; |
| | | delete[] cur_res->vr_res.vehicle_issue_year; |
| | | cur_res->vr_res.vehicle_issue_year = NULL; |
| | | } |
| | | if (cur_res->vr_res.vehicle_type != NULL) { |
| | | // cout << " 车辆类型 - " << cur_res->vr_res.vehicle_type << endl; |
| | | carRes.vehicle_type = std::move(string(cur_res->vr_res.vehicle_type)); |
| | | cout << " 车辆类型 - " << cur_res->vr_res.vehicle_type << endl; |
| | | carRes.vehicle_type = cur_res->vr_res.vehicle_type; |
| | | delete[] cur_res->vr_res.vehicle_type; |
| | | cur_res->vr_res.vehicle_type = NULL; |
| | | } |
| | | if (cur_res->vr_res.freight_ton != NULL) { |
| | | // cout << " 货车吨级 - " << cur_res->vr_res.freight_ton << endl; |
| | | carRes.freight_ton = std::move(string(cur_res->vr_res.freight_ton)); |
| | | cout << " 货车吨级 - " << cur_res->vr_res.freight_ton << endl; |
| | | carRes.freight_ton = cur_res->vr_res.freight_ton; |
| | | delete[] cur_res->vr_res.freight_ton; |
| | | cur_res->vr_res.freight_ton = NULL; |
| | | } |
| | |
| | | |
| | | // 车牌 |
| | | if (cur_res->vp_res.rect.height_ != 0 && cur_res->vp_res.rect.width_ != 0) { |
| | | // cout << "车牌位置: " << cur_res->vp_res.rect.left_ << " " << cur_res->vp_res.rect.top_ << " " |
| | | // << cur_res->vp_res.rect.width_ << " " << cur_res->vp_res.rect.height_ << endl; |
| | | cout << "车牌位置: " << cur_res->vp_res.rect.left_ << " " << cur_res->vp_res.rect.top_ << " " |
| | | << cur_res->vp_res.rect.width_ << " " << cur_res->vp_res.rect.height_ << endl; |
| | | carRes.carPlateRect.setRect(cur_res->vp_res.rect.left_, cur_res->vp_res.rect.top_, |
| | | cur_res->vp_res.rect.width_, cur_res->vp_res.rect.height_); |
| | | carRes.carPlateRectScore = cur_res->vp_res.detectScore; |
| | | |
| | | std::string _carPlate; |
| | | for (int m = 0; m < 7; m++) { |
| | | // printf("%s", cur_res->vp_res.recg[m].character); |
| | | carRes.carPlate.append(cur_res->vp_res.recg[m].character); |
| | | printf("%s", cur_res->vp_res.recg[m].character); |
| | | _carPlate.append(cur_res->vp_res.recg[m].character); |
| | | } |
| | | carRes.carPlate = const_cast<char *>(_carPlate.c_str()); |
| | | carRes.carPlateRectScore = cur_res->vp_res.numScore; |
| | | carRes.carPlatetype = cur_res->vp_res.type; |
| | | // printf(" numScore = %.2f, detectScore = %.2f\n", cur_res->vp_res.numScore, cur_res->vp_res.detectScore); |