|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
# e. B; \: W# y% P$ l! Z
我是在ARM上运行的,我的测试代码如下:
1 j1 M* \6 y1 J0 Q/ s( Q0 ^, }, r- P4 b8 ^$ C. f9 q
#include<stdio.h>/ R6 L- P) O4 D; c7 T/ ^) u: v
#include <opencv2/opencv.hpp> z/ R# F5 Q, i' z6 j
#include <opencv2/contrib/contrib.hpp>' L% ^& C% V% Z" h& I
#include <string>7 c* u; w7 M* m. G- I
/ N- V3 ?( R7 i9 W. e+ U4 G
using namespace cv;8 B# ~8 s9 f1 O
using namespace std;% |" v+ p1 b6 L, U' U; `* ]
) i8 y) P T2 H/ g3 U6 I) {
int main(int argc ,char* argv[])% X! m' {7 T+ Y7 [; e/ Z
{
' f' r+ H$ n$ f+ {& xvector<Mat> matVec;9 B! c/ t. p# l8 q
//Mat tmpMat;1 y% o2 Z) U, Z& F
IplImage* src;
) a& E8 E3 P c! f6 @0 N( Y
& U! o: v; S9 t- e$ E! S. g( O. sfor(int i=0;i<100;++i)
' Z/ n0 P a' l0 n1 k1 v7 O+ K{- ~- c2 A6 `7 w
Mat tmpMat;
( q2 i4 q5 L" b7 \, e# ~, { tmpMat.create(cvSize(256,256),CV_8UC1);
3 x9 r7 {+ K- E0 h for(int j=0;j<256;++j)
" Z, K3 a; ^, y- k; g( [ for(int k=0;k<256;++k)' J6 y0 p' W6 V: m& |
{
# I; [# [5 y P) T1 T. ]/ Y tmpMat.at<uchar>(j,k)=(i+j)%255;
6 o' h1 h* ^ f }
! J j! |/ P- e8 \9 ?; V( H matVec.push_back(tmpMat.clone());" i2 H- G# g1 i* D5 {' |
}5 M# b3 a. D" {7 @% }8 D& |2 S! y" C
int index=100;
4 f4 c& u9 E9 r# \; [* g5 z1 z4 Tsystem("free");
+ G$ h2 p% G- Qprintf("Press any key to stop!");
& f* p* z! S2 u4 N% k3 {! Hgetchar();# U% p. o* O; S& h, a) a2 N3 |
while(index>1)
6 c! E5 t5 [! D+ {! X {, d% p* H* p; g0 Z5 ~9 Z
matVec.at(index-1).release();- C! @& n* Y9 \. j8 [( E5 a' E
--index;9 v& a5 x* V, c! ?) g- i! Q
}
2 r {- |- V* Z- x6 d. LmatVec.clear();4 U' O$ N6 S+ p
vector<Mat>(matVec).swap(matVec);
( H: J' @" y2 H; q3 w- Usystem("free");2 U9 V& ?8 m4 S+ t; S1 Y: d
printf("Press any key to stop!");' \" K( d6 L$ N7 e$ v* ?: @
getchar();
1 h7 R5 t1 H6 freturn 0;
+ ]" Q% R/ c4 G# c# u( Q1 B6 m9 B/ J, K# W% Q6 P
}& g% Z3 r- |: E9 S; \ D% |: x
" G( J% ^! U7 H! u3 g0 Y5 n
运行效果如下图:2 Z' S% E( U K4 Z
% p- o% V u/ i! r
3 X V6 U: r4 P释放前后,内存并没有太大变化。我感到很困惑,这是什么原因呢? |
|