stlコンテナに保存されているopencvイメージを解放するのに問題があります。私はカメラから最後の数フレームを保存するシステムを開発しています。画像を保存するためのコンテナが必要です。しかし、イテレータを使用して画像にアクセスして解放しようとすると、問題が発生します。このような。
deque<IplImage> ImageQue;
IplImage * temp=cvCreateImage(cvSize(30, 30), 8, 3);
ImageQue.push_back(*temp);
deque<IplImage>::iterator it=ImageQue.begin();
//temp and temp2 pointing different mem
IplImage * temp2=&*it;
//this goes wrong. execption at memory location.
cvReleaseImage(&temp2);
これを試してみたら。
IplImage * try1=cvCreateImage(cvSize(30, 30), 8, 3);
//try1 and try2 are pointing the same mem.
IplImage * try2=&*try1;
//things alright here.
cvReleaseImage(&try2);
問題はここにあると思います。deque :: iterator it = ImageQue.begin(); IplImage * temp2 =&* it;
これについて何か考えはありますか?または、stlコンテナでイメージをリリースしたい場合の提案ですか?