13回目にして今更導入時の不具合とはなんとも変な話ですが、OpenCvSharpが動かないというケースを時々耳にします。はっきり聞いているわけではないのでよくわからないのですが、わかる限りの解決策を書いておきます。どうやらBadImageFormatExceptionが多い…
随分久しぶりの更新です。どうにか進路は決まったらしいです。 さて、つい最近登場し注目を集めたGo言語ですが、C言語のライブラリをリンクして呼び出せる機能があり、この機能を使えば、Cで書かれたライブラリのGoラッパー(Goバインディング)が作れます。わ…
【注意】 この記事の内容は古く、最新のOpenCvSharpでは動作しません。記録としてあえて残しますが、ラベリングについては以下の記事を参照してください。 http://schima.hatenablog.com/entry/2014/01/19/120540 その1 その2 その3 その4 その5 その6 その7…
行列のような2次元配列のデータをC#上で表現するとき、それにはいくつか方法があります。それぞれの処理速度を比べてみます。
2度目のイメチェン(って死語?)。幅が固定ではないものにしようと思いました。 そういえば、結局良いタイトルが思い浮かばず、デフォルトの「Schimaの日記」のままここまできてしまいました。今更変えようとも思いませんが、なんかいい名前付けたかったな…
Windows7に搭載された「仮想マシン」の機能は主にXPモードのため使われると思いますが、もちろん他のOSを入れることもできます。公式にサポートしているのはXPやVista, 7ですが、Virtual PC 2004や2007の経験からいえばLinuxもインストールできるはずです。…
64bit版を公開しました。ずいぶんファイルが増えました。なおOpenCV1.1pre向けはそもそも1.1preがあまり64bitに対応していなさそうなので見送っています。(2.0も、まだまだという面はあります。)http://code.google.com/p/opencvsharp/downloads/list 去年か…
以前にcvについて新しく増えた関数の一覧を書きました。http://d.hatena.ne.jp/Schima/20090911/1252661453今回はhighguiについてもまとめておきます。新しく追加された関数や、引数が増えた関数を一覧にしてあります(C++ Interfaceは除く)。例によって正確…
以下のように、C++のクラスのインスタンスを作成するため、C#からDllImportで呼び出せるようなファクトリ関数を作ってあるとします。 #define EXTERN(type) extern "C" __declspec(dllexport) type __cdecl EXTERN(std::vector<int>*) vector_new() { return new </int>…
以下のようなCの構造体について、P/InvokeのためにC#で同等の構造体を定義するとします。 typedef struct Hoge { size_t size; int x; }Hoge; 32bit環境に限れば、size_t は普通 unsigned int ですから、C#では以下のようになります。 [StructLayout(LayoutK…
その1 その2 その3 その4 その5 その6 その7 その8 その9 その10 cvResizeを用いた拡大処理のサンプルです。詳しい解説はありません。
かれこれ2年半以上protectedだったので勇気がいりますね。 http://twitter.com/Schima
.NET Frameworkでは、System.IO.Compression.GZipStreamやSystem.IO.Compression.DeflateStreamクラスを用いて、データを圧縮・展開することができます。この2つのクラスは全く同じように使えるため、以下ではGZipStreamで話を進めます。 以下のコードは、指…
その1 その2 その3 その4 その5 その6 その7 その8 その9 このところOpenCvSharpの使い方というよりはただのOpenCV 2.0の新機能紹介になっているこのシリーズですが、今回はStar Detector(日本語だとStar検出器?)のサンプルを作ってみたのでご紹介します。S…
その1 その2 その3 その4 その5 その6 その7 その8 だんだんいい加減になっているこのシリーズですが、MSERのサンプルを作ってみたのでご紹介します。MSERの関数はOpenCV 2.0で追加されました。
その1 その2 その3 その4 その5 その6 その7 突然レベルが急上昇している気がしますが、LSHのサンプルを作ってみたのでご紹介します。LSHの関数はOpenCV 2.0で追加されました。
オープンソースプロジェクト第二弾。http://code.google.com/p/videoinputsharp/videoInputの.NET Framework向けラッパーです。videoInputというのは、DirectShowによるビデオキャプチャを容易にできる、C++向けライブラリです。Windows限定なのでラッパーは…
Visual StudioのC++のIDEでは、intやcharといった標準のキーワードがハイライトされて色が付きます。実はそのほかの任意のキーワードについても、設定を行うことでハイライトが可能です。
気付いた範囲でOpenCV2.0で増えたcvの関数を追加しました。http://code.google.com/p/opencvsharp/downloads/listOpenCV2.0をインストールするとbinディレクトリには「libcv200.dll」といったDLLが置かれていますが、OpenCvSharpはこれらは読み込みに行きま…
訳あって1画素16ビットのグレースケール画像が入り用になりました。生成できるフリーソフトは何かしらあるとは思いますが、今回はこれをOpenCVで生成しようと考えました。
C#からOpenCV2,0をDllImportで呼び出してみたところ、AccessViolationExceptionが発生しました。 static class Program { [DllImport("libcxcore200")] extern static CvSize cvGetSize(IntPtr arr); [DllImport("libcxcore200")] extern static IntPtr cvCr…
早速Visual Studioの環境設定をするか・・・と思ったのも束の間、libディレクトリにあるライブラリファイルがこんなことになっていました。.a なのでUnixのスタティックライブラリでしょうか。ということはWindowsでは使えないので、自分でOpenCVをコンパイ…
延びに延びていましたがようやく出ました。http://sourceforge.net/projects/opencvlibrary/やはりバージョン番号は1.2ではなく2のようです。 ぼちぼちOpenCvSharpも2.0.0対応に向けてがんばりますか・・・・
PLAYSTATION Eye について PlayStation3用のカメラとして、「PLAYSTATION Eye」というものがあります。PLAYSTATION Eye(CEJH-15001)出版社/メーカー: ソニー・コンピュータエンタテインメント発売日: 2008/07/24メディア: Video Game購入: 4人 クリック: 110…
OpenCvSharpの更新履歴というのは全然記録しておらず、コミットログだけが頼りだというひどい状況です。遅ればせながら、以下のアカウントに日々の更新を書き連ねていくことにしました。http://twitter.com/OpenCvSharpTwitterもログはあまり遡れないサービ…
OpenCV 2.0 betaにてcvRedirectErrorが使えなくなっていた件ですが、revision2170〜2171にて修正された模様です。いやーよかった。
その1 その2 その3 その4 その5 その6 OpenCVのhighguiではなくWindowsFormsのウィンドウ上で動画を再生したいということは多いようです。OpenCvSharpに限っても、以下のページなどで試みられています。http://d.hatena.ne.jp/Guernsey/20081207/1228649067 …
Debugger Visualizerは、ただ表示するだけではなく、値の編集も行うことが出来ます。今回は、System.Text.StringBuilderの保持する文字列の表示・編集が可能なDebugger Visualizerの作成の方法の紹介です。ちなみにStringBuilderはSerializableです。以下は…
今回は System.Security.Cryptography.RijndaelManaged に対するDebugger Visualizerを自作することを考えます。暗号化・復号化に必要なIVとKeyのバイト列の値を16進数表記で表示させるという特に面白くもなんともないサンプルです。このクラスはSerializabl…
OpenCVにはPythonから扱うためのラッパーが標準で添付されています。SWIGで機械的に作られている感じですが、いずれにしろラッパー開発者として知っておかないわけにはいきません。