|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
1 ~' r, t3 e# r5 u5 u我是在ARM上运行的,我的测试代码如下:
' w9 w% A! j1 W; p4 a T# l
$ q% M; S4 j* a( j+ @2 X. {0 T8 n#include<stdio.h>
/ Z8 x( U5 a: g. B9 J#include <opencv2/opencv.hpp> r5 p2 E: B* I) I0 L( Y9 Z
#include <opencv2/contrib/contrib.hpp>
3 Q; Z) a/ ?2 U9 H* \3 {#include <string>8 k7 K" Y+ E' a
# x+ F7 x; ?; a3 ausing namespace cv;
3 z7 F# U( A6 r" c* @using namespace std;
' t( z5 Z" w: n8 V& n! b( }
2 y! ]: [$ O S2 P) @; L* Hint main(int argc ,char* argv[])( T8 _4 K5 ~& D- n7 s
{5 E0 I7 @" c. X; [! l* b
vector<Mat> matVec;6 S* b- X$ L+ ^7 q& k( M1 W7 L* D
//Mat tmpMat; S( W/ U' z* W: _( s
IplImage* src;
2 ?& O) j. a) c* a1 _' ^+ n% b5 j2 X! ~. S% ]
for(int i=0;i<100;++i)& ^& d# V" o8 y$ i
{% k: R9 J9 V0 x
Mat tmpMat;
& r4 E" C; a. Q2 T" X8 L tmpMat.create(cvSize(256,256),CV_8UC1);, P W0 ]- b- [7 F" s+ ~: p
for(int j=0;j<256;++j)
1 @* K; R, D3 u9 X' l. M8 M for(int k=0;k<256;++k)
, X+ g( q1 L% M; T {+ a+ D3 [ h6 s5 ]
tmpMat.at<uchar>(j,k)=(i+j)%255;
& T r# E" D9 z- [ }% O9 i( X4 S' e. j6 A, W0 O
matVec.push_back(tmpMat.clone());
6 F, ~- o; t B2 Y- s n2 T}# }4 v1 B0 |* W7 @
int index=100;1 F& J r% L2 y& D
system("free");" X7 V$ b9 ~7 ^' O) _# _
printf("Press any key to stop!");
" d2 `! V: z! [' z7 e) {4 cgetchar();
: j" }0 p, ~) T0 D( zwhile(index>1)7 M+ X+ S/ ]0 \6 i: f, j& V
{
- }$ V$ m# b7 n( O( {% d p matVec.at(index-1).release();
4 p6 s5 |8 n) Q+ g6 ~( d --index;" Q2 P# E6 H+ V4 ~* C8 Z' O
}
; Q% D! @+ x4 T! l; _0 M" K7 fmatVec.clear();
7 y- ?: E0 z! v, B& G0 avector<Mat>(matVec).swap(matVec);# M- O/ O/ S# ^8 U9 i1 ~) v
system("free");
9 H: \8 b0 O2 {printf("Press any key to stop!");) X4 P6 ]5 a# h* v7 s" j
getchar();
& @) u4 P6 S) e3 b( _return 0;8 N* ]- x8 Z9 f9 e
' }+ r) m' j) `5 g}0 f7 H- z1 L7 [( A1 i$ n8 O
% t/ e+ l0 J: c1 j$ _
运行效果如下图:
$ L' _4 o2 B) {% _+ U; k% b
9 W$ R+ t- @# |" T% _7 z. ~! g
/ C- w+ E5 s$ u8 l S; e n释放前后,内存并没有太大变化。我感到很困惑,这是什么原因呢? |
|