Commit a49f4fe7247ad3e5e8c3ea0c8de73535379bcaa6

Authored by Zou XiKun
1 parent d2b7bc13

解决释放handle有内存泄漏的问题

src/left_over/MSRegionSurveilanceCpu.cpp
... ... @@ -41,23 +41,6 @@ int IRegionSurveillanceCpu::rs_init(const rs_params &param)
41 41 }
42 42 int IRegionSurveillanceCpu::rs_init_region(int num_roi, region_info* region_infos/*, bool iflog*/)
43 43 {
44   - //RegionInfo reginifos;
45   - //reginifos.AlarmInfo = region_infos->alarm_info; // 1进入禁区 2离开禁区 3单向越界 4双向越界 5徘徊 6丢包
46   - //reginifos.nPointNum = region_infos->point_num;
47   - //for (int i = 0; i < MAXVERTEXNUM; ++i)
48   - //{
49   - // reginifos.pROI[i].x = region_infos->p_roi[i].x_;
50   - // reginifos.pROI[i].y = region_infos->p_roi[i].y_;
51   - //}
52   - //CMPoint pROI[MAXVERTEXNUM];
53   - //reginifos.nFrameNum = region_infos->frame_num;
54   - //reginifos.dirPoint.x = region_infos->dir_point.x_;
55   - //reginifos.dirPoint.y = region_infos->dir_point.y_;
56   - //reginifos.finaldir = region_infos->finaldir;
57   - //reginifos.ArrowStartPoint.x = region_infos->arrow_start_point.x_;
58   - //reginifos.ArrowStartPoint.y = region_infos->arrow_start_point.y_;
59   - //reginifos.ArrowEndPoint.x = region_infos->arrow_end_point.x_; //箭头的终止端点 箭头指向正方形
60   - //reginifos.ArrowEndPoint.y = region_infos->arrow_end_point.y_; //箭头的终止端点 箭头指向正方形
61 44 int r = 0;
62 45 for (int i = 0; i < rect_num; ++i)
63 46 {
... ... @@ -70,20 +53,10 @@ int IRegionSurveillanceCpu::rs_detect(const sy_img &amp;img_data, region_info* regio
70 53 RegionInfo reginifos;
71 54 reginifos.AlarmInfo = region_infos->alarm_info; // 1进入禁区 2离开禁区 3单向越界 4双向越界 5徘徊 6丢包
72 55 reginifos.nPointNum = region_infos->point_num;
73   - /*for (int i = 0; i < MAXVERTEXNUM; ++i)
74   - {
75   - reginifos.pROI[i].x = region_infos->p_roi[i].x_;
76   - reginifos.pROI[i].y = region_infos->p_roi[i].y_;
77   - }*/
  56 +
78 57 CMPoint pROI[MAXVERTEXNUM];
79 58 reginifos.nFrameNum = region_infos->frame_num;
80   - //reginifos.dirPoint.x = region_infos->dir_point.x_;
81   - //reginifos.dirPoint.y = region_infos->dir_point.y_;
82   - //reginifos.finaldir = region_infos->finaldir;
83   - //reginifos.ArrowStartPoint.x = region_infos->arrow_start_point.x_;
84   - //reginifos.ArrowStartPoint.y = region_infos->arrow_start_point.y_;
85   - //reginifos.ArrowEndPoint.x = region_infos->arrow_end_point.x_; //箭头的终止端点 箭头指向正方形
86   - //reginifos.ArrowEndPoint.y = region_infos->arrow_end_point.y_; //箭头的终止端点 箭头指向正方形
  59 +
87 60  
88 61  
89 62 int totalObjCount = 0;
... ... @@ -94,11 +67,9 @@ int IRegionSurveillanceCpu::rs_detect(const sy_img &amp;img_data, region_info* regio
94 67 memcpy(gray->imageData, img_data.data_, img_data.w_*img_data.h_ * img_data.c_);
95 68 //cvSetData(gray, img_data.data_, img_data.w_);
96 69 for (int k = 0; k < rect_num; ++k)
97   - //int k = 0;
98 70 {
99 71 IplImage * img = cvCreateImage(cvSize(rect[k].width_, rect[k].height_), 8, 1);
100 72 Screenshot(gray, img, rect[k]);
101   - //cv::Mat roi_img = cv::src_img(Range(0, 100), Range(50, 200));
102 73 IReginCpu[k]->RSDetect((unsigned char*)(img->imageData), &reginifos);
103 74 auto ObjCount = IReginCpu[k]->getObjectNum();
104 75  
... ...
src/left_over/RegionSurveillanceProcess.h
... ... @@ -31,12 +31,12 @@ public:
31 31 // }
32 32 //
33 33 //};
34   -
  34 + virtual ~RegionSurveillanceProcess() {};
35 35 virtual int rs_init(const rs_params &param) = 0;
36 36 virtual int rs_init_region(int num_roi, region_info* region_infos/*, bool iflog*/) = 0;
37 37 virtual int rs_detect(const sy_img &img_data, region_info* region_infos, rs_result *result) = 0;
38 38 //virtual int rs_get_arrowdir(const sy_point &p_roi0, const sy_point &p_roi1, const sy_point &dir) = 0;
39   - void* handle;
  39 + //void* handle;
40 40 int licence_status = -1;
41 41 int thrd_status = -1;
42 42 double scale;
... ...
src/left_over/svibe.cpp
... ... @@ -3352,14 +3352,13 @@ void RegionSurveillance::RSrelease()
3352 3352 greyImgData = NULL;
3353 3353 }
3354 3354  
3355   - if (vbM->bg_samples != NULL)
3356   - {
3357   - free(vbM->bg_samples);
3358   - vbM->bg_samples = NULL;
3359   - }
3360   -
3361 3355 if (vbM != NULL)
3362 3356 {
  3357 + if (vbM->bg_samples != NULL)
  3358 + {
  3359 + free(vbM->bg_samples);
  3360 + vbM->bg_samples = NULL;
  3361 + }
3363 3362 free(vbM);
3364 3363 vbM = NULL;
3365 3364 }
... ...