2009-03-01から1ヶ月間の記事一覧
以下のコードはコンパイルが通りません。doubleはstructですし、ifの中はTがdoubleの時しか絶対に実行されないので良さそうなものですが、ダメです。 T Hoge<T>() where T : struct { if(typeof(T) == typeof(double)) { double r2 = 1.41421; return r2; } els</t>…
のですが、いい方法はないものか・・・・。 とかのタグにlang="ja"とかあったらなあと思いましたがあるわけもなく。 思いついたのはこんな方法です。 #if LANG_JP /// /// 日本語 /// /// 正の数 #elif LANG_DE /// /// Deutsch /// /// eine positive Zahl …
C#でC/C++のライブラリのラッパークラスを作るときの基本形は、こんな感じになると思います。 class HogeWrapper : IDisposable { IntPtr ptr; public HogeWrapper() { ptr = createHoge(); } public void Dispose() { releaseHoge(ptr); } [DllImport("hoge…
※追記:.NET Framework4以降における方法 http://schima.hatenablog.com/entry/2013/10/08/003445現在OpenCvSharpをC#メインで書き直し中です。C++/CLIに比べるとVisualStudioの支援が手厚く、コンパイルも圧倒的に速いので作業効率は良いです。しかしラッパ…
id:Schima:20090228 で、C++/CLIにてinitonlyにより定数っぽいもの(readonly)を定義する方法をご紹介しましたが、やはり厳密な意味での定数ではないために困ることがあります。この方法では、コンパイル時に定数が必要な場合には使えません。 例えばenumの初…
最近プログラムを書いていてちょっと納得いかなかったことをいくつか。
CvSeqを使う関数は何かとラッパー的に面倒なので避け気味なのですが、頑張って実装しました。最近たまっていた分を含めてリリースしておきました。Sandcastleのバージョンを上げたので、以前よりもヘルプが見やすくなっていると思います。 以下の画像はOpenC…
C#でアンマネージな関数を使いたければ、DllImportを使うのが常道です。しかし、定義の際に必ずstaticをつけることからもわかるように、静的な定義であり、プログラムの実行中に動的に関数名を決めてロード、といったことはできません。C/C++ではWin32APIのL…
だいぶ前に書いたちょっとしたメモのせいで、このブログに「C/C++/C# 動的配列」といったキーワードで飛んでくる方が結構いるみたいです。大して書いてなくて申し訳ないので勉強兼ねてまとめときます。
cvFindStereoCorrespondenceBM, cvFindStereoCorrespondenceGCのほかに、cvauxの方にもcvFindStereoCorrespondenceという関数があります。こちらもラップしてみました。 http://opencv.jp/opencv-1.1.0/document/opencvref_cvaux.html#decl_cvFindStereoCorr…
こちらのページの関数をすべてラップしました。まだリリースはしてません。 http://opencv.jp/opencv-1.1.0/document/opencvref_cv_epipolar.html cvFindStereoCorrespondenceBMとcvFindStereoCorrespondenceGCを試しに動かしてみました。先ほどのOpenCVリフ…