openCV cv :: matリリース

ギラッド

openCV cv :: Matを使用する場合。http://docs.opencv.org/modules/core/doc/basic_structures.htmlある種のスマートポインターが使用されていることを理解しています。私の質問は、メモリの最適化を行うためです。
未使用の行列を解放するためにcv :: Mat release()を呼び出す必要がありますか?
または、コンパイラがそれを行うことを信頼する必要がありますか?

たとえば、次のコードについて考えてみます。

cv::Mat filterContours = cv::Mat::zeros(bwImg.size(),CV_8UC3);  
bwImg.release();
for (int i = 0; i < goodContours.size(); i++)
{
    cv::RNG rng(12345);
    cv::Scalar color = cv::Scalar( rng.uniform(0, 255), rng.uniform(0,255), rng.uniform(0,255) );
    cv::drawContours(filterContours,goodContours,i,color,CV_FILLED);        
}

/*% Fill any holes in the objects
bwImgLabeled = imfill(bwImgLabeled,'holes');*/


imageData = filterContours;
filterContours.release(); //should I call this line or not ?
RSニキルクリシュナ

このcv::release()関数はメモリを解放します。メモリは、とにかくMatインスタンスのスコープの最後でデストラクタが処理します。したがって、投稿したコードスニペットで明示的に呼び出す必要はありません。必要になる場合の例は、マトリックスのサイズが同じループ内の異なる反復で変化する可能性がある場合です。

using namespace cv;
int i = 0;
Mat myMat;
while(i++ < relevantCounter )
{
    myMat.create(sizeForThisIteration, CV_8UC1);

    //Do some stuff where the size of Mat can vary in different iterations\\

    mymat.release();
}

ここで、cv :: release()を使用すると、すべてのループでポインターを作成するオーバーヘッドからコンパイラーを節約できます。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

opencvバイナリデータjpg画像からcv :: Mat

分類Dev

OpenCV 2.4 : Displaying a cv::Mat in MFC

分類Dev

OpenCV:cv :: Matは、一見有効なデータからマトリックスを作成できません

分類Dev

他のOpenCVマトリックスからcv :: Matおよびcv :: UMatにコピーせずにデータを割り当てる

分類Dev

C ++ OpenCV cv :: Matの最大ストレージ容量

分類Dev

opencv cv :: Ptrの動的キャスト

分類Dev

OpenCVエラー-cv2.cvtcolor

分類Dev

cv.Matはコンストラクターopencvではありません

分類Dev

OpenCVのcv :: Matのカスタム定義タイプ

分類Dev

Opencv-Python cv2.CV_CAP_PROP_FPSエラー

分類Dev

Opencv cuda pythonリマップエラーcv.cuda.remap(raw、mapx、mapy、cv.INTER_CUBIC、borderMode = cv.COLOR_RGB2GRAY)

分類Dev

RaspberryPi-OpenCvの自動起動-スクリプト-cv :: imshow()のエラー

分類Dev

OpenCVライブラリ関数の一部としてcv :: Mat型を明示的に宣言する方法

分類Dev

Boost / OpenCVエラー: '(boost :: _ mfi :: dm <void(cv :: Mat *、cv :: VideoCapture *)、Recorder>)の呼び出しに一致しません

分類Dev

python cv2のcvPOSIT opencvアルゴリズム

分類Dev

cv :: Mat.refcount OpenCV3.0にありません

分類Dev

OpenCV3.0でCvMat *をcv :: Matに変換する方法

分類Dev

OpenCvでのcv :: Matの外部(テンソル)積の計算

分類Dev

cv :: MatとEigen :: Matrixを正しく使用する方法は?(OpenCV + Eigen)

分類Dev

cv :: Matを独自のROI(opencv)に適切に置き換える

分類Dev

OpenCv cv2.arcLength(cnt、True)およびcv2.contourArea(cnt)エラー

分類Dev

Opencvはcv :: Matを使用して新しいイメージを作成します

分類Dev

openCVでcv :: Matのピクセルデータを変更する方法は?

分類Dev

OpenCV 3.2.0のcv2.cv.Round?

分類Dev

OpenCVデモをリンクするg ++は、cv :: _ InputArray :: _InputArrayとcv :: imshowを見つけられません

分類Dev

Ipythonノートブック(jupyter)、opencv(cv2)、プロット?

分類Dev

Opencv2にcvをインポートできません

分類Dev

OpenCv、4x4 cv :: Matにcv :: Point3fを掛ける最良の方法は何ですか?

分類Dev

Python + OpenCV:cv2.imwrite

Related 関連記事

  1. 1

    opencvバイナリデータjpg画像からcv :: Mat

  2. 2

    OpenCV 2.4 : Displaying a cv::Mat in MFC

  3. 3

    OpenCV:cv :: Matは、一見有効なデータからマトリックスを作成できません

  4. 4

    他のOpenCVマトリックスからcv :: Matおよびcv :: UMatにコピーせずにデータを割り当てる

  5. 5

    C ++ OpenCV cv :: Matの最大ストレージ容量

  6. 6

    opencv cv :: Ptrの動的キャスト

  7. 7

    OpenCVエラー-cv2.cvtcolor

  8. 8

    cv.Matはコンストラクターopencvではありません

  9. 9

    OpenCVのcv :: Matのカスタム定義タイプ

  10. 10

    Opencv-Python cv2.CV_CAP_PROP_FPSエラー

  11. 11

    Opencv cuda pythonリマップエラーcv.cuda.remap(raw、mapx、mapy、cv.INTER_CUBIC、borderMode = cv.COLOR_RGB2GRAY)

  12. 12

    RaspberryPi-OpenCvの自動起動-スクリプト-cv :: imshow()のエラー

  13. 13

    OpenCVライブラリ関数の一部としてcv :: Mat型を明示的に宣言する方法

  14. 14

    Boost / OpenCVエラー: '(boost :: _ mfi :: dm <void(cv :: Mat *、cv :: VideoCapture *)、Recorder>)の呼び出しに一致しません

  15. 15

    python cv2のcvPOSIT opencvアルゴリズム

  16. 16

    cv :: Mat.refcount OpenCV3.0にありません

  17. 17

    OpenCV3.0でCvMat *をcv :: Matに変換する方法

  18. 18

    OpenCvでのcv :: Matの外部(テンソル)積の計算

  19. 19

    cv :: MatとEigen :: Matrixを正しく使用する方法は?(OpenCV + Eigen)

  20. 20

    cv :: Matを独自のROI(opencv)に適切に置き換える

  21. 21

    OpenCv cv2.arcLength(cnt、True)およびcv2.contourArea(cnt)エラー

  22. 22

    Opencvはcv :: Matを使用して新しいイメージを作成します

  23. 23

    openCVでcv :: Matのピクセルデータを変更する方法は?

  24. 24

    OpenCV 3.2.0のcv2.cv.Round?

  25. 25

    OpenCVデモをリンクするg ++は、cv :: _ InputArray :: _InputArrayとcv :: imshowを見つけられません

  26. 26

    Ipythonノートブック(jupyter)、opencv(cv2)、プロット?

  27. 27

    Opencv2にcvをインポートできません

  28. 28

    OpenCv、4x4 cv :: Matにcv :: Point3fを掛ける最良の方法は何ですか?

  29. 29

    Python + OpenCV:cv2.imwrite

ホットタグ

アーカイブ