2009-04-01から1ヶ月間の記事一覧

基底クラスの基底クラスにアクセスしたい

C#

C#では base というキーワードで継承元のクラスのメンバにアクセスできます。では継承元の元はどうするか、つまり base.base.Hoge(); のようなことがやりたいという場合のお話です。しかし残念ながらbaseは繋げて書けません。

雪2

窓の外を見て驚き、カレンダーを確認して再度驚き・・・ようやく微妙に桃色になってきた木と雪景色とのミスマッチ。

C++/CLIで拡張メソッド

は、どうも無理っぽいです。そりゃそうだと納得するしかないですが。 System.Core.dllを参照に加えたうえで、こんなコードを書いてみます。VB.NETでの拡張メソッドの定義に準じたつもりです。 public ref class MyExtensions abstract sealed { public: [Sys…

cvのコメント英語化完了

おかげさまで行数が天井知らずに増えております。あとはcxcoreの方をやればほぼ終わったも同然になります。終わった暁には、XMLドキュメントコメントが日英両対応という素敵な状態になります。コンピュータビジョン ―アルゴリズムと応用―作者: Richard Szeli…

marshal_as, marshal_context

char* と System::String^の変換の方法の備忘録。Visual C++ 2008から使用可能になったmarshal_asとmarshal_contextを使うと、Marshal::StringToHGlobalAnsiなどを使うよりも若干楽ができます。 char* -> String^ #include <msclr/marshal.h> using namespace msclr::interop;</msclr/marshal.h>…

msvcr90.dll

C#で作ったDLLからC++/CLIで作ったDLLを呼び出すと、FileNotFoundExceptionが発生して、このところ途方にくれていました。 FileNotFoundExceptionというと、読み込むテキストファイルや画像ファイル等がないときに発生するというイメージでしたが、これはDLL…

ConvexHull2をラップ

Convex Hullは日本語では凸包と訳されます。平面上の点がいっぱいあったとき、その一番「外側」の点を結んでできた線です。 cvConvexHull2の返り値のCvSeqから凸包の頂点を取り出す際、2重ポインタ(CvPoint**)が出てくるためその扱いに苦慮しています。今の…

多重ポインタの実体を得る

C#

あるIntPtrの変数ppに、構造体Tのポインタのポインタ、つまりC言語でいうところのT**が入っていたとします。このポインタからunsafeを使わずに実体の値を得る方法です。 確認までに、C言語ではこうなります (ppの型はT**とする)。 T t = **pp; C#(というか.…

デジカメ整理

この前の春休みに帰省した時の写真をいくつか。 家の中から撮ったリスです。見かけること自体は日常茶飯事で、たぶん毎日出没してるので気を付けていればかなりの確率で見られるのですが、ここまでどアップで撮れたのは初めてです。 あとおまけ、帰り道で通…

cvblobをラップ

少し前に要望が有ったので、組み込んでみました。まだ進捗は半分程度といったところですが、サンプルは動きました。 ソースはこのような感じです。ほぼcvblob付属のtest.cppの直訳です。 using (IplImage img = new IplImage("shapes.png", LoadMode.Color))…

OpenCvSharp2

C#で書き直していましたがおそらく全て終わりました。拡張メソッドを使うことで結構省力化できたように思います。大体C++/CLI実装と互換性はあるんじゃないかと思いますが、やや変えてる部分はあります。 また、なんとコミッタさんが現れたため、未実装の関…