From ecb47d89dcb2b1d8e4be9b6cb0a84d8b49e2e3cc Mon Sep 17 00:00:00 2001
From: pansen <pansen626@sina.com>
Date: 星期三, 10 四月 2019 12:20:00 +0800
Subject: [PATCH] 添加iceServer

---
 QiaoJiaSystem/VptServer/main.cpp |  201 ++++++++++++++++---------------------------------
 1 files changed, 66 insertions(+), 135 deletions(-)

diff --git a/QiaoJiaSystem/VptServer/main.cpp b/QiaoJiaSystem/VptServer/main.cpp
index 91e0087..16027c8 100644
--- a/QiaoJiaSystem/VptServer/main.cpp
+++ b/QiaoJiaSystem/VptServer/main.cpp
@@ -12,16 +12,50 @@
 #else
 
 #include <sys/time.h>
-#include <basic/util/app/AppUtil.h>
 
 #endif
 
+#include <basic/util/app/AppUtil.h>
+#include "VptDetectWrapper.h"
+#include <Ice/Ice.h>
+#include <basic/rpc/IceRpc.hpp>
+#include <basic/util/app/AppPreference.hpp>
+#include "VptServerI.h"
+#include <basic/debug/Debug.h>
+
+#include <basic/util/app/AppConfig.h>
+
 using namespace std;
+#define varName(x) #x
+#define printExp(exp) cout<<#exp<<"涓�:\t\t"<<(exp)<<endl
+#define printExpToString(exp) cout<<(string(#exp)+"涓�:\t\t")<<(exp).toString()<<endl //娉ㄦ剰exp鍔犳嫭鍙锋洿瀹夊叏
 
-
-void printfAnalysisRes(int index, void *result);
 
 int main(int argc, char **argv) {
+
+    std::cout << __DATE__ << " " << __TIME__ << std::endl;
+    SAVE_APP_ARGS;
+    ENABLEGLOG(GET_STR_CONFIG("logPath").c_str());
+    auto ich = Ice::initialize(argc, argv);
+
+    if (argc < 4) {
+        assert("t_value.size()");
+    }
+    appPref.setIntData("gpu.index", atoi(argv[1]));
+    appPref.setIntData("RpcVptPort", atoi(argv[2]));
+    appPref.setFloatData("thresh.detect", atof(argv[3]));
+
+
+    IceRpcServer<VptServerI> server("vptServer", appPref.getIntData("RpcVptPort"), "tcp");
+    server.setMessageSizeMax(1024 * 1024 * 50);
+    server.setPoolInitSize(5);
+    server.setPoolMaxSize(10);
+    server.runWaitShutDown();
+    return 0;
+}
+
+
+int main2(int argc, char **argv) {
     string imgpath;
 
     if (argc < 2) {
@@ -39,21 +73,8 @@
     double fontScale = 1;
     int thickness = 2;
 
-    void *handle;
-    vptpic_param param;
-    param.mode = DEVICE_GPU;
-    param.gpuid = 0;
+    VptDetectWrapper vptDetectWrapper;
 
-    param.hp_recg_config = SY_CONFIG_OPEN;
-    param.hcp_recg_config = SY_CONFIG_OPEN;
-    param.vehicle_color_config = SY_CONFIG_OPEN;
-    param.vehicle_recg_config = SY_CONFIG_OPEN;
-    param.vehicle_pendant_det_recg_config = SY_CONFIG_OPEN;
-
-    param.dbPath = "CarBodyFeature.db";
-    param.log = SY_CONFIG_OPEN;
-
-    vpt_pic_init(&handle, param);
 
     cv::VideoCapture capture;
     capture.open(imgpath);
@@ -66,136 +87,46 @@
     while (!process_image.empty()) {
 
         process_image.copyTo(image);
-        sy_img img;
-        img.set_data(image.cols, image.rows, image.channels(), image.data);
+        vptDetectWrapper.process_image(image);
 
-        vptpic_result result;
-        result.info = new vptobj_info[MAX_DET_COUNT];
-        int ret = vpt_pic_process(handle, img, &result);
-
-        for (int i = 0; i < result.count; i++) {
-            char str_i[100];
-            int colorIndex = result.info[i].obj_index;
-            if (colorIndex < 0 || colorIndex >= 9)continue;
-            sprintf(str_i, "%s:%.2f", type[colorIndex].c_str(), result.info[i].obj_score);
-
-            rectangle(process_image,
-                      cvPoint(result.info[i].obj_rect.left_ - 5, result.info[i].obj_rect.top_ - 15),
-                      cvPoint(result.info[i].obj_rect.left_ + result.info[i].obj_rect.width_ + 5,
-                              result.info[i].obj_rect.top_ + result.info[i].obj_rect.height_ + 10),
-                      cv::Scalar(color[colorIndex][0], color[colorIndex][1], color[colorIndex][2]), 3, 1);
-
-            cv::putText(process_image, str_i,
-                        cv::Point(result.info[i].obj_rect.left_, result.info[i].obj_rect.top_),
-                        fontFace, fontScale,
-                        cv::Scalar(color[colorIndex][0], color[colorIndex][1], color[colorIndex][2]), thickness, 8);
-
-            //杈撳嚭浜屾灞炴�у垎鏋愮粨鏋�
-            printfAnalysisRes(colorIndex, result.info[i].analysis_res);
-        }
+//        for (int i = 0; i < result.count; i++) {
+//            char str_i[100];
+//            int colorIndex = result.info[i].obj_index;
+//            if (colorIndex < 0 || colorIndex >= 9)continue;
+//            sprintf(str_i, "%s:%.2f", type[colorIndex].c_str(), result.info[i].obj_score);
+//
+//            rectangle(process_image,
+//                      cvPoint(result.info[i].obj_rect.left_ - 5, result.info[i].obj_rect.top_ - 15),
+//                      cvPoint(result.info[i].obj_rect.left_ + result.info[i].obj_rect.width_ + 5,
+//                              result.info[i].obj_rect.top_ + result.info[i].obj_rect.height_ + 10),
+//                      cv::Scalar(color[colorIndex][0], color[colorIndex][1], color[colorIndex][2]), 3, 1);
+//
+//            cv::putText(process_image, str_i,
+//                        cv::Point(result.info[i].obj_rect.left_, result.info[i].obj_rect.top_),
+//                        fontFace, fontScale,
+//                        cv::Scalar(color[colorIndex][0], color[colorIndex][1], color[colorIndex][2]), thickness, 8);
+//
+//            //杈撳嚭浜屾灞炴�у垎鏋愮粨鏋�
+//            printfAnalysisRes(colorIndex, result.info[i].analysis_res);
+//        }
 
 #ifdef _MSC_VER
         cv::imshow("res", image);
         cv::waitKey(0);
 #else
-        char svpath[1024];
-        memset(svpath, 0, sizeof(svpath));
-        std::string strNewTime2 = AppUtil::getTimeUSecString();
-        strNewTime2.append(".jpg");
-
-        sprintf(svpath, "vpt_res/%s", strNewTime2.c_str());
-        imwrite(svpath, process_image);
+//        char svpath[1024];
+//        memset(svpath, 0, sizeof(svpath));
+//        std::string strNewTime2 = AppUtil::getTimeUSecString();
+//        strNewTime2.append(".jpg");
+//
+//        sprintf(svpath, "vpt_res/%s", strNewTime2.c_str());
+//        imwrite(svpath, process_image);
 #endif
-        //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;
-        }
 
         capture >> process_image;//璇诲嚭姣忎竴甯х殑鍥惧儚
     }
 
 
-    vpt_pic_release(&handle);
-
     return 0;
 }
 
-
-void printfAnalysisRes(int index, void *result) {
-    if (index == 0 && result != NULL)    //琛屼汉浜屾灞炴�у垎鏋愮粨鏋�
-    {
-        hp_res *cur_res = (hp_res *) result;
-
-        for (int i = 0; i < HP_FIR_INDEX_SIZE; i++) {
-            int resIndex = cur_res->res_objs[i].res_index;
-            cur_res->res_objs[i].res_prob;
-            cout << HpResStr[i][resIndex] << " " << endl;
-
-        }
-        cout << endl << endl;
-    } else if ((index == 1 || index == 2) && result != NULL)    //琛屼汉浜屾灞炴�у垎鏋愮粨鏋�
-    {
-        hcp_res *cur_res = (hcp_res *) result;
-
-        for (int i = 0; i < HCP_FIR_INDEX_SIZE; i++) {
-            int resIndex = cur_res->res_objs[i].res_index;
-            cur_res->res_objs[i].res_prob;
-//            cout << HcpResStr[i][resIndex] << " " << endl;
-        }
-        cout << endl << endl;
-    } else if (index > 3 && index != 7 && result != NULL)    //杞﹁締浜屾灞炴�у垎鏋愮粨鏋滆緭鍑�
-    {
-        vehicle_res *cur_res = (vehicle_res *) result;
-
-        cout << "杞﹂鑹�: " << colorLabel[cur_res->vc_res.res_index] << " " << cur_res->vc_res.res_prob << endl;
-
-        cout << "杞﹀瀷璇嗗埆: " << endl;
-        if (cur_res->vr_res.vehicle_brand != NULL) {
-            cout << "  杞﹁締鍝佺墝 - " << cur_res->vr_res.vehicle_brand << endl;
-            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;
-            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;
-            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;
-            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;
-            delete[] cur_res->vr_res.freight_ton;
-            cur_res->vr_res.freight_ton = NULL;
-        }
-        cout << " " << cur_res->vr_res.name_score << endl;
-
-
-        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;
-
-            for (int m = 0; m < 7; m++) {
-                printf("%s", cur_res->vp_res.recg[m].character);
-            }
-            printf(" numScore = %.2f, detectScore = %.2f\n", cur_res->vp_res.numScore, cur_res->vp_res.detectScore);
-        }
-
-        cout << endl;
-    }
-}

--
Gitblit v1.8.0