プログラム

OpenCV

【OpenCV2対応参考書籍】OpenCV 2 Computer Vision Application Programming Cookbook

2011.5月現在、OpenCV2以降に対応した参考書籍としては、まだ、発売されていませんが、これのみ?しかも英語 OpenCV Ver2.0からはC++インターフェースが追加され、大きく変わったのですが、このC++に対応していると思われる...
OpenCV

【OpenCV】輪郭処理(cvFindContours)を使ったラベリング処理

OpenCVには標準的にはcvLabelingのようなラベリングの関数は無いので、 ラベリングクラス(大阪大学の井村先生によるもの) Blob extraction library を使いましょう!というのが一般的になってきているように思い...
OpenCV

【OpenCV】インプレースモード

OpenCVの関数では入力画像(src)と出力画像(dst)に同じ値(src=dst)を指定しても処理してくれる 関数があり、このことをインプレースモードと言います。 例えば cvErode(src, src); cvErode(src, ...
OpenCV

【OpenCV】アンシャープマスキング(鮮鋭化)

アンシャープマスキング(Unsharp Masking)もOpenCVに無い関数の1つのなのですが、OpenCVには任意カーネルを指定してフィルタ処理を行っているcvFilter2Dという関数があるので、これを使ってアンシャープマスキングを...
OpenCV

【OpenCV】コンピュータにopencv_objdetect220d.dllがないため、

OpenCVのサンプルプログラムなどを動かそうとすると、下図のように コンピュータにopencv_objdetect220d.dllがないため、プログラムを開始できません。 この問題を解決するには、プログラムを再インストールしてみて下さい。...
OpenCV

【OpenCV】ソーベルフィルタ(cvSobel)

OpenCVの関数では、ほとんど入力画像と出力画像のデータはビット数とチャンネル数は等しい場合が多いのですが、ソーベルフィルタの関数(cvSobel)は入力画像が8Bitに対し、出力画像が符号付きの16Bit(IPL_DEPTH_16S)に...
C++/CLI

【C++/CLI】配列の配列(ジャグ配列)

配列の配列をジャグ配列と言います。 サンプルコードは以下の通り。 ////////////////////////////////////////////// // 配列の配列(ジャグ配列) その1 ////////////////////...
OpenCV

【OpenCV】ガンマ補正

OpenCVにはcvGammaのようなガンマ補正の関数は無いのですが、ルックアップテーブルを使った輝度値変換の関数(cvLUT)はあるので、これを使ってガンマ補正を行いたいと思います。 以下、ガンマ補正のサンプルプログラムです。OpenCV...
C++/CLI

【C++/CLI】配列の確保(Arrayクラス)

配列の確保は array<型>^変数名 = gcnew array<型>(要素数); のように行います。 多次元の場合は array<型, 次数>^変数名 = gcnew array<型, 次数>(0次の要素数, 1次の要素数, 2次の要素...
C++/CLI

【C++/CLI】文字列の右寄せ、左寄せ、中央寄せ描画

文字列を描画する時にはSystem::Drawing::Graphics::DrawStringメソッドを用いますが、文字列を描画するのに、右寄せ、左寄せ、中央寄せを指定するには、6つあるオーバーロードのうち、System::Drawing...
Visual Studio

【Visual Studio】作成中のユーザーコントロールをツールボックスに表示する方法

作成中のユーザーコントロールのアイコンがツールボックスに表示されない場合あります。(Visual Studioのバージョンにより異なる?) ツールボックスへ表示させるには、Visual Studioのメニューからツール→オプションを選択し、...
Visual Studio

【Visual Studio】Express Editionでユーザーコントロールを作成する方法

Visual StudioのExpress Editionでは、プロジェクトの作成でユーザーコントロールの項目が表示されないので、ユーザーコントロールは作成できないのか?と思いがちですが、VB.NETとC#ではExpress Edition...
Visual Studio

【Visual Studio】既存ユーザーコントロールの使用方法

既存のユーザーコントロールを使用する方法は、Visual Studioのツールボックス上でマウスの右ボタンをクリックし、表示されたメニューのアイテムの選択をクリックします。 (クリック後、時間がかかる場合があります。) 表示されたメニューの...
フリーウェア

【.NET】GraphicsBoxコントロール

.NET(VB.NET、C#)に対応した画像や線などの描画向けにPictureBoxコントロールを継承した GraphicsBoxなるコントロールを作成しました。 このGraphicsBoxはPictureBoxを使っていて足りないな~と思...
Visual Studio

【VisualStudio】ウォッチでポインタの中身(値)を参照する

デバッグ実行時に下図のようなプログラムの場合、 ポインタの変数(pBuf)をウォッチウィンドウで見てみると、ポインタのアドレスと先頭の 値しか見る事ができません。↓ そこで、ウォッチの名前の部分に、ポインタ変数名に ,(カンマ)と表示する個...
Visual Studio

【VisualStudio】重なったコントロールの選択

分かりづらいかもしれませんが、下図のように、フォームにsplitContainerを配置し、親(フォーム)にドッキングした後、PanelにPictureBoxをドッキングした場合など、マウス操作でsplitContainerを選択するのは意...