|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
* g$ s. G; r# X2 I2 V! b* L0 S$ R* u我是在ARM上运行的,我的测试代码如下:1 ?+ e5 ?4 t. w R
7 X2 U+ i2 E4 x( z" H3 a#include<stdio.h>' T! Z; b9 ` ]: O5 [" Z: d4 g
#include <opencv2/opencv.hpp>1 t% G6 _6 g7 s, X5 }. X1 H
#include <opencv2/contrib/contrib.hpp>
* P2 P! W5 I6 ~ {* _/ J, V#include <string>
% w1 }, j" q; f0 _' y6 s+ `/ t& `% t* V. T. ?4 ?
using namespace cv;
% k; u( m) L8 u' iusing namespace std;1 d6 m: x: t/ L N. r: |/ Z
# X% m; D: |& G9 ?! _, q
int main(int argc ,char* argv[])- Z4 |- y1 S8 c/ P8 {
{4 N7 w1 ]0 v6 w. L
vector<Mat> matVec;' A: K8 |+ `8 `0 e* A4 j Y
//Mat tmpMat;9 _0 ?3 W3 U" @6 Q4 |
IplImage* src;
) q8 f1 s# o/ y; G
9 [4 ~9 T5 S; lfor(int i=0;i<100;++i)
) d, f+ x& k& m( U3 H- |; v4 n{
) b8 n' |1 d% J Mat tmpMat;9 F: I/ L1 ]; S' O
tmpMat.create(cvSize(256,256),CV_8UC1);
- x" d4 o' ?5 M$ c for(int j=0;j<256;++j)
! f9 b- O6 q" V for(int k=0;k<256;++k)
8 t: }& P& C& m: j- O5 o {! R) Y5 R2 b, h( n
tmpMat.at<uchar>(j,k)=(i+j)%255;- E$ W" C! x7 b }+ \
}
2 ]" g, [9 r' U0 w4 ^' }- m matVec.push_back(tmpMat.clone());0 _. O4 S$ O' d
}
1 W+ H8 n6 R0 K4 l# f% S4 {int index=100;( _9 q: W9 D7 D0 `3 S
system("free");/ j+ z, e1 i# ?$ y. h1 V
printf("Press any key to stop!");
) |; J/ m# }. m5 k! vgetchar();" t: Y3 J0 j5 Q& Q# y4 A. n
while(index>1)- _2 l6 ]/ r J# |4 B f' O2 z
{4 x& r7 q V9 @/ D
matVec.at(index-1).release();* ~5 G4 ^7 a! O0 u) }- {8 A
--index;
5 H6 L! ]5 k9 h: K }2 k: w8 i# D' B, d
matVec.clear();
+ o7 n( @ }3 Evector<Mat>(matVec).swap(matVec);
# S6 E+ D7 _+ c2 I2 C0 W8 Nsystem("free");
, s& I3 ^- K* C6 c3 N" Gprintf("Press any key to stop!");
; v' Z; K3 U: m; O. n' @" ogetchar();
; n5 p+ V# D) t8 R G$ L; z3 o( treturn 0;$ ^6 Q/ J( ~( M/ }: [$ d3 \8 k: t
6 W6 ^ V: M/ O( `/ ]
}
! O/ N& B- N& _+ Y7 ]; g5 |
0 a" N5 \( ~. V* S运行效果如下图:
; {! f2 T- C M
, G/ ?- P" e2 X% \+ s3 [2 Z* E/ }: |7 m8 n0 d g/ g" E
释放前后,内存并没有太大变化。我感到很困惑,这是什么原因呢? |
|