前提・実現したいこと
外部からOpenCVを触らせないようなクラスを作成しています。
凸包座標を取得するクラスを作成しているのですが、
外部から呼ぶと下記のエラーが発生します。
"Debug Assertion Failed!"
vectorのデストラクタでメモリ解放ができていないエラーと推測しているのですが、
どのように解決をすればいいのかわかりません。
該当のソースコード
MFCApplication1Dlg.cpp
C++
1void CMFCApplication1Dlg::OnBnClickedButton1() 2{ 3 EdgeClass edge; 4 edge.Add(1, 1); 5 edge.Add(2, 5); 6 edge.Add(4, 2); 7 edge.Add(6, 1); 8 edge.Add(7, 5); 9 10 std::vector<EdgeClass::Point> vPoint; 11 edge.GetConvexHull(vPoint); 12}
EdgeClass.h
C++
1class EdgeClass 2{ 3public: 4 EdgeClass() {}; 5 ~EdgeClass() {}; 6 7 struct Point{ 8 double x; 9 double y; 10 }; 11 UINT Add(double x, double y); 12 bool GetConvexHull(std::vector<Point>& point); 13 14 std::vector<cv::Point2f> m_ListEdges; 15};
EdgeClass.cpp
C++
1UINT EdgeClass::Add(double x, double y) 2{ 3 cv::Point pos; 4 pos.x = (int)x; 5 pos.y = (int)y; 6 m_ListEdges.push_back(pos); 7 8 return (UINT)m_ListEdges.size(); 9} 10 11bool EdgeClass::GetConvexHull(std::vector<Point>& point) 12{ 13 std::vector<cv::Point2f> vertexes; 14 cv::convexHull(m_ListEdges, vertexes); 15 16 for (auto i : vertexes) 17 { 18 Point p; 19 p.x = i.x; 20 p.y = i.y; 21 point.push_back(p); 22 } 23 24 return true; // ここでエラーが出る 25}
試したこと
ステップイン実行をするとGetConvexHull関数のreturnのところでエラーが発生します。
ご教授いただけると助かります。
補足情報(FW/ツールのバージョンなど)
visual studio 2017
MFCアプリケーション
OpenCV4.5.1
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2021/03/18 06:38
2021/03/18 07:17