前回の記事の件で訂正。もう少し探っていくと、2重のdelegateでなくとも単にアンマネージ関数に空のdelegateを渡すだけでも落ちていました。お手上げ状態なのは相変わらずです。GCが発動すると落ちるということしかわかっていません。
そのアンマネージ関数というのは具体的に言ってしまうとOpenCVのcvSeqPartitionのことです。比較関数のデリゲートを指定してそれで分類するといった処理を行います。
http://opencv.jp/opencv-1.1.0/document/opencvref_cxcore_misc.html#decl_cvSeqPartition
ただしここで、(ちょっと癪ですが)cvSeqPartitionが使えないとどうしようもないかと聞かれると、そうではないはずです。CvSeqはC言語では便利ですが、C++のSTLや、ましてC#ではList
OpenCvSharpでは、CvSeq
// CvSeq<int> -> int[] int[] array = seq.ToArray(); // int[] -> CvSeq<int> CvSeq<int> seq = CvSeq<int>.FromArray(array, SeqType.EltypeS32C1, storage);
また、そもそもわざわざ変換しなくとも、CvSeq
本当にどうしようもなければ、ネイティブコードを呼ぶのをやめてマネージ側で実装するしかないかと思っています。
.NET Framework―プログラミングテクニックfor Visual Basic/C#〈Vol.7〉グラフィックス&イメージ(2)C#編
- 作者: 北山洋幸
- 出版社/メーカー: カットシステム
- 発売日: 2007/06
- メディア: 単行本
- クリック: 2回
- この商品を含むブログ (2件) を見る