Commit a49f4fe7247ad3e5e8c3ea0c8de73535379bcaa6
1 parent
d2b7bc13
解决释放handle有内存泄漏的问题
Showing
3 changed files
with
9 additions
and
39 deletions
src/left_over/MSRegionSurveilanceCpu.cpp
@@ -41,23 +41,6 @@ int IRegionSurveillanceCpu::rs_init(const rs_params &param) | @@ -41,23 +41,6 @@ int IRegionSurveillanceCpu::rs_init(const rs_params &param) | ||
41 | } | 41 | } |
42 | int IRegionSurveillanceCpu::rs_init_region(int num_roi, region_info* region_infos/*, bool iflog*/) | 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 | int r = 0; | 44 | int r = 0; |
62 | for (int i = 0; i < rect_num; ++i) | 45 | for (int i = 0; i < rect_num; ++i) |
63 | { | 46 | { |
@@ -70,20 +53,10 @@ int IRegionSurveillanceCpu::rs_detect(const sy_img &img_data, region_info* regio | @@ -70,20 +53,10 @@ int IRegionSurveillanceCpu::rs_detect(const sy_img &img_data, region_info* regio | ||
70 | RegionInfo reginifos; | 53 | RegionInfo reginifos; |
71 | reginifos.AlarmInfo = region_infos->alarm_info; // 1进入禁区 2离开禁区 3单向越界 4双向越界 5徘徊 6丢包 | 54 | reginifos.AlarmInfo = region_infos->alarm_info; // 1进入禁区 2离开禁区 3单向越界 4双向越界 5徘徊 6丢包 |
72 | reginifos.nPointNum = region_infos->point_num; | 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 | CMPoint pROI[MAXVERTEXNUM]; | 57 | CMPoint pROI[MAXVERTEXNUM]; |
79 | reginifos.nFrameNum = region_infos->frame_num; | 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 | int totalObjCount = 0; | 62 | int totalObjCount = 0; |
@@ -94,11 +67,9 @@ int IRegionSurveillanceCpu::rs_detect(const sy_img &img_data, region_info* regio | @@ -94,11 +67,9 @@ int IRegionSurveillanceCpu::rs_detect(const sy_img &img_data, region_info* regio | ||
94 | memcpy(gray->imageData, img_data.data_, img_data.w_*img_data.h_ * img_data.c_); | 67 | memcpy(gray->imageData, img_data.data_, img_data.w_*img_data.h_ * img_data.c_); |
95 | //cvSetData(gray, img_data.data_, img_data.w_); | 68 | //cvSetData(gray, img_data.data_, img_data.w_); |
96 | for (int k = 0; k < rect_num; ++k) | 69 | for (int k = 0; k < rect_num; ++k) |
97 | - //int k = 0; | ||
98 | { | 70 | { |
99 | IplImage * img = cvCreateImage(cvSize(rect[k].width_, rect[k].height_), 8, 1); | 71 | IplImage * img = cvCreateImage(cvSize(rect[k].width_, rect[k].height_), 8, 1); |
100 | Screenshot(gray, img, rect[k]); | 72 | Screenshot(gray, img, rect[k]); |
101 | - //cv::Mat roi_img = cv::src_img(Range(0, 100), Range(50, 200)); | ||
102 | IReginCpu[k]->RSDetect((unsigned char*)(img->imageData), ®inifos); | 73 | IReginCpu[k]->RSDetect((unsigned char*)(img->imageData), ®inifos); |
103 | auto ObjCount = IReginCpu[k]->getObjectNum(); | 74 | auto ObjCount = IReginCpu[k]->getObjectNum(); |
104 | 75 |
src/left_over/RegionSurveillanceProcess.h
@@ -31,12 +31,12 @@ public: | @@ -31,12 +31,12 @@ public: | ||
31 | // } | 31 | // } |
32 | // | 32 | // |
33 | //}; | 33 | //}; |
34 | - | 34 | + virtual ~RegionSurveillanceProcess() {}; |
35 | virtual int rs_init(const rs_params ¶m) = 0; | 35 | virtual int rs_init(const rs_params ¶m) = 0; |
36 | virtual int rs_init_region(int num_roi, region_info* region_infos/*, bool iflog*/) = 0; | 36 | virtual int rs_init_region(int num_roi, region_info* region_infos/*, bool iflog*/) = 0; |
37 | virtual int rs_detect(const sy_img &img_data, region_info* region_infos, rs_result *result) = 0; | 37 | virtual int rs_detect(const sy_img &img_data, region_info* region_infos, rs_result *result) = 0; |
38 | //virtual int rs_get_arrowdir(const sy_point &p_roi0, const sy_point &p_roi1, const sy_point &dir) = 0; | 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 | int licence_status = -1; | 40 | int licence_status = -1; |
41 | int thrd_status = -1; | 41 | int thrd_status = -1; |
42 | double scale; | 42 | double scale; |
src/left_over/svibe.cpp
@@ -3352,14 +3352,13 @@ void RegionSurveillance::RSrelease() | @@ -3352,14 +3352,13 @@ void RegionSurveillance::RSrelease() | ||
3352 | greyImgData = NULL; | 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 | if (vbM != NULL) | 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 | free(vbM); | 3362 | free(vbM); |
3364 | vbM = NULL; | 3363 | vbM = NULL; |
3365 | } | 3364 | } |