OpenCvSharpは.Net Framework2.0
.NetからOpenCVを利用した画像認識のソフトを作るために、OpenCvSharpというラッパーライブラリを使わせてもらっています。OpenCV用のCのサンプルなどを機械的にトランスレートできる感じが便利です。
で、OpenCvSharpの利用にあたって、SystemRequirementsに 「.NET Framework 2.0」 と書いてあることは認識していましたが、ついつい4.0でプロジェクトを作ってしまっていましたよと。
ビルドして動かしてみると、ぱっと見動いているのですが、数分動作させると、スレッド間の排他処理で意味不明のデッドロックになったり、終了時にアクセスバイオレーションで落ちたり。メモリリークしてるっぽい挙動。特にウィンドウメッセージが多く飛び交うような状態だと結構落ちる。
このときは、すっかりフレームワークのバージョンのことは忘れておりまして。リソースの解放やらなんやらかんやらを調べていたのですが、埒があかずに数日過ぎる。
「こらちょっと別な方法を探さなあかんかな?」というところで、やっと気付きまして(遅い)、2.0を使うようにすれば、当たり前のように(当たり前ですが、)問題解消。
フレームワークのバージョンに依存する可能性を考えていなかったのが敗因(勝ち負けではないが)。
調査中にプログラムを徐々に単純化していったので、自分で入れ込んだバグも修正された可能性もありますけどね。
てことで、OpenCvSharpを使って「おかしい」と感じた時は.Net Frameworkのバージョンを確認してみましょう。
« おっちゃんと自転車 | トップページ | OpenCV2.4.3のWindows版がビルド失敗 »
「プログラミング」カテゴリの記事
- 自分で書いたコードが大好き(2020.09.20)
- NPMのヨロコビ(2020.05.14)
- VanilaJS は必須科目(2019.02.25)
- MZ-700フルJavaScriptエミュレータ v1.0.6 をリリース(2019.01.26)
- 戦々恐々GitHub vs BitBucket(2019.01.08)
コメント