画像処理ソリューション
これを見れば画像処理の入門から基礎~応用まで全てがわかるのを目指して!
   
翻訳(Translate)

プロフィール

Akira

ニックネーム:Akira
東京都の町田事業所に勤務
画像処理ソフトの開発を行っています。リンクフリーです!
詳細プロフィールは こちら
お問い合わせは、こちら↓

【補助HP】
画像処理ソリューションWeb版 【Newブログ】
イメージングソリューション

スポンサーリンク


カテゴリ

最近のコメント

カレンダー

09 | 2017/10 | 11
S M T W T F S
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31 - - - -

趣味のブログ

iPhone萬歳!
iPhoneの情報いろいろ。
ブログ学習帳
ブログ、SEO、アフィリエイト情報など(まだまだこれから)
俺流クラフト日記
ハンドメイド作品の記録(現在、放置中)

スポンサーリンク 最近の記事
(09/18)  計測測定展に光切断のデモを出展しました
(08/17)  ディジタル画像技術事典200に記事が載りました
(06/09)  光切断を画像センシング展で公開
(05/14)  中国(上海)へ行って来ました
(04/12)  韓国へ行って来ました
(03/10)  私の求める新人像
(01/18)  エレクトロテストジャパンにカラー光切断法のデモを出展しました。
(12/23)  ユニークアクセス200万達成!
(12/10)  【カラー光切断法】YouTube動画まとめ
(11/04)  国際画像機器展2014にカラー光切断法を出展します。
(10/05)  第25回コンピュータビジョン勉強会@関東に参加してきました。
(09/08)  フーリエ変換の記事を追加しました。
(08/09)  【画像処理】ランキング低下中
(07/06)  記事の更新が停滞中...
(06/08)  画像センシング展2014でカラー光切断法のデモを行います。
(05/17)  カラー光切断法の動画を公開しました。
(04/30)  ソニーα NEX-5Rで星空撮影
(04/10)  カラー光切断法の取込結果を追加しました
(03/08)  Korea Vision Show 2014へ行ってきました
(02/05)  フーリエ変換シリーズを始めます。
(01/06)  2014年、あけましておめでとうございます。
(12/04)  カラー光切断法を公開(国際画像機器展2013にて)
(11/13)  国際画像機器展2013に出展します
(10/14)  「画像処理のためのC#」はじめます。
(09/16)  【C#,VB.NET】高速描画コントロールをバージョンアップしました。
(09/04)  拡大鏡に輝度値表示、ルーラー機能を追加した個人ツールを公開
(08/05)  7月の拍手Top5
(07/06)  2013年6月人気記事Top5
(05/12)  SONY α NEX-5Rレビュー
(04/24)  SONY α NEX-5RY購入

【C#,VB.NET】高速描画コントロールをバージョンアップしました。

 PictureBoxにGraphicsプロパティなどを追加して、再描画などの行うコントロールをバージョンアップしました。


【.NET】GraphicsBoxコントロール


今回の主な変更点はGraphicsオブジェクトをダブルバッファにしました。
これで、おそらく普通の.NETの描画サンプルよりも、少し高速に描画できると思います。

かなり地味ですが、それなりに便利かと...

Loading...
スポンサーリンク

スポンサーリンク 最近の記事
(09/18)  計測測定展に光切断のデモを出展しました
(08/17)  ディジタル画像技術事典200に記事が載りました
(06/09)  光切断を画像センシング展で公開
(05/14)  中国(上海)へ行って来ました
(04/12)  韓国へ行って来ました
(03/10)  私の求める新人像
(01/18)  エレクトロテストジャパンにカラー光切断法のデモを出展しました。
(12/23)  ユニークアクセス200万達成!
(12/10)  【カラー光切断法】YouTube動画まとめ
(11/04)  国際画像機器展2014にカラー光切断法を出展します。
(10/05)  第25回コンピュータビジョン勉強会@関東に参加してきました。
(09/08)  フーリエ変換の記事を追加しました。
(08/09)  【画像処理】ランキング低下中
(07/06)  記事の更新が停滞中...
(06/08)  画像センシング展2014でカラー光切断法のデモを行います。
(05/17)  カラー光切断法の動画を公開しました。
(04/30)  ソニーα NEX-5Rで星空撮影
(04/10)  カラー光切断法の取込結果を追加しました
(03/08)  Korea Vision Show 2014へ行ってきました
(02/05)  フーリエ変換シリーズを始めます。
(01/06)  2014年、あけましておめでとうございます。
(12/04)  カラー光切断法を公開(国際画像機器展2013にて)
(11/13)  国際画像機器展2013に出展します
(10/14)  「画像処理のためのC#」はじめます。
(09/16)  【C#,VB.NET】高速描画コントロールをバージョンアップしました。
(09/04)  拡大鏡に輝度値表示、ルーラー機能を追加した個人ツールを公開
(08/05)  7月の拍手Top5
(07/06)  2013年6月人気記事Top5
(05/12)  SONY α NEX-5Rレビュー
(04/24)  SONY α NEX-5RY購入

【C#】マウスホイールで画像の拡大縮小

これまで紹介してきた記事の内容を使って、マウスホイールで画像を拡大縮小する方法を紹介します。
(必要な知識) これらを使って、下図のようにマウスポインタを中心として、画像の拡大縮小するプログラムを作成しました。
サンプルプログラムのダウンロードはこちらより

サンプルプログラム実行例


画像の拡大縮小表示のポイントは、任意点周りの回転移動でも紹介しているように、画像の拡大縮小では原点を中心として画像を拡大縮小するので、任意の点を中心として拡大縮小する場合は中心の点を原点へ移動し、拡大縮小後、元の位置へ移動する処理を行います。 点(X、Y)を中心に画像を拡大表示する場合
マウスホイールで画像の拡大縮小
点(X、Y)を原点へ移動します。
   マウスホイールで画像の拡大縮小
原点へ移動後、画像の拡大縮小処理を行います。
   マウスホイールで画像の拡大縮小
点を元の位置へ戻します。
   マウスホイールで画像の拡大縮小
サンプルプログラムは以下の通り
サンプルプログラムのダウンロードはこちらより

やっている事の割には、意外と簡単。
昔は大変だった...
Loading...
スポンサーリンク

スポンサーリンク 最近の記事
(09/18)  計測測定展に光切断のデモを出展しました
(08/17)  ディジタル画像技術事典200に記事が載りました
(06/09)  光切断を画像センシング展で公開
(05/14)  中国(上海)へ行って来ました
(04/12)  韓国へ行って来ました
(03/10)  私の求める新人像
(01/18)  エレクトロテストジャパンにカラー光切断法のデモを出展しました。
(12/23)  ユニークアクセス200万達成!
(12/10)  【カラー光切断法】YouTube動画まとめ
(11/04)  国際画像機器展2014にカラー光切断法を出展します。
(10/05)  第25回コンピュータビジョン勉強会@関東に参加してきました。
(09/08)  フーリエ変換の記事を追加しました。
(08/09)  【画像処理】ランキング低下中
(07/06)  記事の更新が停滞中...
(06/08)  画像センシング展2014でカラー光切断法のデモを行います。
(05/17)  カラー光切断法の動画を公開しました。
(04/30)  ソニーα NEX-5Rで星空撮影
(04/10)  カラー光切断法の取込結果を追加しました
(03/08)  Korea Vision Show 2014へ行ってきました
(02/05)  フーリエ変換シリーズを始めます。
(01/06)  2014年、あけましておめでとうございます。
(12/04)  カラー光切断法を公開(国際画像機器展2013にて)
(11/13)  国際画像機器展2013に出展します
(10/14)  「画像処理のためのC#」はじめます。
(09/16)  【C#,VB.NET】高速描画コントロールをバージョンアップしました。
(09/04)  拡大鏡に輝度値表示、ルーラー機能を追加した個人ツールを公開
(08/05)  7月の拍手Top5
(07/06)  2013年6月人気記事Top5
(05/12)  SONY α NEX-5Rレビュー
(04/24)  SONY α NEX-5RY購入

【C#】マウスホイールイベントの追加方法

C#のマウスホイールイベントは、Visual Studioのプロパティウィンドウのイベントでは表示されていないため、自分でイベントを登録する必要があります。

まずはサンプルプログラムを参照下さい。
サンプルプログラムのダウンロードはこちらより

Formのコンストラクタ部分でマウスホイールイベント(MouseWheel)を登録しています。
サンプルプログラムでは、ピクチャボックスのイベントとして追加しています。

this.pictureBox1.MouseWheel += new System.Windows.Forms.MouseEventHandler(this.pictureBox1_MouseWheel);

実際のイベント処理を行う部分は

private void pictureBox1_MouseWheel(object sender, MouseEventArgs e)
{

}

ここで、一つ注意点があり、これだけではMouseWheelにイベントが入ってくれません。
MouseWheelイベントを発生させるには、明示的にイベントを発生させるオブジェクト(サンプルではpictureBox1)にフォーカスを設定する必要があります。

そこで、サンプルではpictureBox1_Clickイベントでフォーカスを設定しています。

private void pictureBox1_Click(object sender, EventArgs e)
{
        // ピクチャボックスにフォーカスを移す
        pictureBox1.Focus();
}


実行画面
マウスホイールイベントの追加方法
Loading...
スポンサーリンク

スポンサーリンク 最近の記事
(09/18)  計測測定展に光切断のデモを出展しました
(08/17)  ディジタル画像技術事典200に記事が載りました
(06/09)  光切断を画像センシング展で公開
(05/14)  中国(上海)へ行って来ました
(04/12)  韓国へ行って来ました
(03/10)  私の求める新人像
(01/18)  エレクトロテストジャパンにカラー光切断法のデモを出展しました。
(12/23)  ユニークアクセス200万達成!
(12/10)  【カラー光切断法】YouTube動画まとめ
(11/04)  国際画像機器展2014にカラー光切断法を出展します。
(10/05)  第25回コンピュータビジョン勉強会@関東に参加してきました。
(09/08)  フーリエ変換の記事を追加しました。
(08/09)  【画像処理】ランキング低下中
(07/06)  記事の更新が停滞中...
(06/08)  画像センシング展2014でカラー光切断法のデモを行います。
(05/17)  カラー光切断法の動画を公開しました。
(04/30)  ソニーα NEX-5Rで星空撮影
(04/10)  カラー光切断法の取込結果を追加しました
(03/08)  Korea Vision Show 2014へ行ってきました
(02/05)  フーリエ変換シリーズを始めます。
(01/06)  2014年、あけましておめでとうございます。
(12/04)  カラー光切断法を公開(国際画像機器展2013にて)
(11/13)  国際画像機器展2013に出展します
(10/14)  「画像処理のためのC#」はじめます。
(09/16)  【C#,VB.NET】高速描画コントロールをバージョンアップしました。
(09/04)  拡大鏡に輝度値表示、ルーラー機能を追加した個人ツールを公開
(08/05)  7月の拍手Top5
(07/06)  2013年6月人気記事Top5
(05/12)  SONY α NEX-5Rレビュー
(04/24)  SONY α NEX-5RY購入

【.NET】Graphicsオブジェクトのアフィン変換(グローバル変換)

メインページC++/CLI プログラミング

前回、アフィン変換について説明しましたが、.NETプログラミング(VB.NET、C#、C++/CLI)においてもアフィン変換が用意されているのですが、マイクロソフトだけはDirectXも含めて、ちょっと特殊な行列表現をします。
このマイクロソフトで用いるアフィン変換の行列は、変換前の座標を(x, y)、変換前の座標を(x', y')とすると

.NETのアフィン変換

のように表現します。
この時の座標系は、ピクチャボックス等の左上が原点で時計回りが正の回転方向となります。

.NETのアフィン変換

X軸方向へTx、Y軸方向へTyだけ移動する平行移動の変換行列をTとすると、

  .NETのアフィン変換

X軸方向へSx倍、Y軸方向へSy倍だけ拡大する変換行列をSとすると、

  .NETのアフィン変換
原点まわりにθ°回転移動する変換行列をRとすると

  .NETのアフィン変換

のように表現されます。
この表現方法は、あくまでもマイクロソフトだけなので、一般的なアフィン変換と混同しないようにご注意下さい。

また、.NET Frameworkでは、それぞれGraphicsオブジェクトに対して、それぞれの変換を行うメソッドが用意されています。

平行移動はTranslateTransform
拡大縮小はScaleTransform
回転移動はRotateTransform

を用います。
また、行列を用いて変換しているので、行列を掛ける順番(平行移動や回転移動をする順番)が異なると結果も異なるのでご注意下さい。

C++/CLIのサンプルコード

【平行移動してから回転移動した場合】
// ビットマップファイルの読み込み
Bitmap^ bmp = gcnew Bitmap("Lenna.bmp");
// グラフィックオブジェクトの作成
Graphics^ g = pictureBox1->CreateGraphics();
// ワールド変換行列を単位行列にリセット
g->ResetTransform();
// 平行移動
g->TranslateTransform(100, 0, Drawing2D::MatrixOrder::Append);
// 20°回転
g->RotateTransform(20, Drawing2D::MatrixOrder::Append);
// 画像の描画
g->DrawImage(bmp, 0, 0);

(処理結果)
.NETのアフィン変換

回転移動してから平行移動した場合】
// ビットマップファイルの読み込み
Bitmap^ bmp = gcnew Bitmap("Lenna.bmp");
// グラフィックオブジェクトの作成
Graphics^ g = pictureBox1->CreateGraphics();
// ワールド変換行列を単位行列にリセット
g->ResetTransform();
// 20°回転
g->RotateTransform(20, Drawing2D::MatrixOrder::Append);
// 平行移動
g->TranslateTransform(100, 0, Drawing2D::MatrixOrder::Append);
// 画像の描画
g->DrawImage(bmp, 0, 0);

(処理結果)
.NETのアフィン変換
また、変換行列を直接指定してアフィン変換を行う事も可能です。
ただし、変換行列は最初に説明したマイクロソフト特有の変換行列です。

変換行列を直接指定した場合】
// ビットマップファイルの読み込み
Bitmap^ bmp = gcnew Bitmap("Lenna.bmp");
// グラフィックオブジェクトの作成
Graphics^ g = pictureBox1->CreateGraphics();
// ワールド変換行列を単位行列にリセット
g->ResetTransform();
// 回転行列
float CosTh = Math::Cos(20.0 / 180.0 * Math::PI);
float SinTh = Math::Sin(20.0 / 180.0 * Math::PI);
// 回転→平行移動の行列
Drawing2D::Matrix^ matRot
         = gcnew Drawing2D::Matrix(
                    CosTh,  SinTh,
                    -SinTh, CosTh,
                    100.0f, 0.0f
                    );
// 変換行列を指定
g->Transform = matRot;
// 画像の描画
g->DrawImage(bmp, 0, 0);

(処理結果)
.NETのアフィン変換

参考記事
http://msdn.microsoft.com/ja-jp/library/8667dchf%28v=VS.100%29.aspx
http://msdn.microsoft.com/ja-jp/library/c499ats3%28v=vs.80%29.aspx

Loading...
スポンサーリンク

スポンサーリンク 最近の記事
(09/18)  計測測定展に光切断のデモを出展しました
(08/17)  ディジタル画像技術事典200に記事が載りました
(06/09)  光切断を画像センシング展で公開
(05/14)  中国(上海)へ行って来ました
(04/12)  韓国へ行って来ました
(03/10)  私の求める新人像
(01/18)  エレクトロテストジャパンにカラー光切断法のデモを出展しました。
(12/23)  ユニークアクセス200万達成!
(12/10)  【カラー光切断法】YouTube動画まとめ
(11/04)  国際画像機器展2014にカラー光切断法を出展します。
(10/05)  第25回コンピュータビジョン勉強会@関東に参加してきました。
(09/08)  フーリエ変換の記事を追加しました。
(08/09)  【画像処理】ランキング低下中
(07/06)  記事の更新が停滞中...
(06/08)  画像センシング展2014でカラー光切断法のデモを行います。
(05/17)  カラー光切断法の動画を公開しました。
(04/30)  ソニーα NEX-5Rで星空撮影
(04/10)  カラー光切断法の取込結果を追加しました
(03/08)  Korea Vision Show 2014へ行ってきました
(02/05)  フーリエ変換シリーズを始めます。
(01/06)  2014年、あけましておめでとうございます。
(12/04)  カラー光切断法を公開(国際画像機器展2013にて)
(11/13)  国際画像機器展2013に出展します
(10/14)  「画像処理のためのC#」はじめます。
(09/16)  【C#,VB.NET】高速描画コントロールをバージョンアップしました。
(09/04)  拡大鏡に輝度値表示、ルーラー機能を追加した個人ツールを公開
(08/05)  7月の拍手Top5
(07/06)  2013年6月人気記事Top5
(05/12)  SONY α NEX-5Rレビュー
(04/24)  SONY α NEX-5RY購入

【OpenCV2.2】Windows7(64bit)でUSBカメラが動作せず

OpenCV2.2において、USBカメラから画像を取得しようとすると、どうやら動作してくれないらしい。

【評価環境】
Windows7 64bit
OpenCV-2.2.0-win32-vs2010.exeを使用
使用サンプルプログラム:http://imagingsolution.blog107.fc2.com/blog-entry-208.htmlに記載のもの

気になったので、Ticketが無いか?ここ(https://code.ros.org/trac/opencv/report/2?USER=anonymous&page=2)で調べてみたら、やっぱりそれらしき報告がある。
https://code.ros.org/trac/opencv/ticket/735

(追加情報)dandelionさんより情報を頂きました。
http://pr.willowgarage.com/wiki/OpenCVMeetingNotes/Minutes%202010-12-14

OpenCV2.1だと動作してくれているので、OpenCV2.2は動画系が総崩れか???

でも、OpenCV2.1だとcvLoadImageで大きい画像が開けないバグもあるので、結局、使えそうな安定版はOpenCV2.0かな?


Loading...
スポンサーリンク

スポンサーリンク 最近の記事
(09/18)  計測測定展に光切断のデモを出展しました
(08/17)  ディジタル画像技術事典200に記事が載りました
(06/09)  光切断を画像センシング展で公開
(05/14)  中国(上海)へ行って来ました
(04/12)  韓国へ行って来ました
(03/10)  私の求める新人像
(01/18)  エレクトロテストジャパンにカラー光切断法のデモを出展しました。
(12/23)  ユニークアクセス200万達成!
(12/10)  【カラー光切断法】YouTube動画まとめ
(11/04)  国際画像機器展2014にカラー光切断法を出展します。
(10/05)  第25回コンピュータビジョン勉強会@関東に参加してきました。
(09/08)  フーリエ変換の記事を追加しました。
(08/09)  【画像処理】ランキング低下中
(07/06)  記事の更新が停滞中...
(06/08)  画像センシング展2014でカラー光切断法のデモを行います。
(05/17)  カラー光切断法の動画を公開しました。
(04/30)  ソニーα NEX-5Rで星空撮影
(04/10)  カラー光切断法の取込結果を追加しました
(03/08)  Korea Vision Show 2014へ行ってきました
(02/05)  フーリエ変換シリーズを始めます。
(01/06)  2014年、あけましておめでとうございます。
(12/04)  カラー光切断法を公開(国際画像機器展2013にて)
(11/13)  国際画像機器展2013に出展します
(10/14)  「画像処理のためのC#」はじめます。
(09/16)  【C#,VB.NET】高速描画コントロールをバージョンアップしました。
(09/04)  拡大鏡に輝度値表示、ルーラー機能を追加した個人ツールを公開
(08/05)  7月の拍手Top5
(07/06)  2013年6月人気記事Top5
(05/12)  SONY α NEX-5Rレビュー
(04/24)  SONY α NEX-5RY購入

【C++/CLI】矢印の大きさ変更、任意形状の指定方法

メインページC++/CLI プログラミング

.NETで矢印を描画する場合、線種、線幅、終端形状、接合形状の設定でも紹介したようにStartCapEndCapのプロパティでArrowAnchorを指定すれば、矢印を描画する事はできますが、デフォルト状態では、矢印が小さすぎてあまり使い物になりません。

そこで、矢印の大きさを指定、任意形状を指定する方法を紹介したいと思います。

まずは、実行結果と、そのプログラムを参照下さい。

【実行結果】
矢印の大きさの変更、任意形状の指定
【サンプルプログラム】
private: System::Void pictureBox1_Paint(System::Object^  sender, System::Windows::Forms::PaintEventArgs^  e) {

                 //黒の線幅1のペンを作成
                 Pen^ p = gcnew Pen(Color::Black, 1);

                 ////////////////////////
                 //サイズ指定した矢印の描画


                 //サイズを指定した矢印を作成する。
                 System::Drawing::Drawing2D::AdjustableArrowCap^ myArrow
                        = gcnew System::Drawing::Drawing2D::AdjustableArrowCap(20, 20, false);

                 //線の終端に作成した矢印を指定する。
                 p->CustomEndCap = myArrow;

                 //矢印の描画
                 e->Graphics->DrawLine(p, 10, 50, 200, 50);

                 ////////////////////////
                 //任意矢印の描画

                 //GraphicsPathの作成

                 System::Drawing::Drawing2D::GraphicsPath ^hPath
                     = gcnew System::Drawing::Drawing2D::GraphicsPath();

                 array<Point>^ pts
                     = gcnew array<Point>{Point(0, 0), Point(-10, -20)
                        , Point(0, -14), Point(10, -20), Point(0, 0)};

                 // GraphicsPathへ多角形(矢印)を追加
                 hPath->AddPolygon(pts);

                 //塗りつぶさないカスタムキャップの定義
                 System::Drawing::Drawing2D::CustomLineCap ^HookStartCap
                     = gcnew System::Drawing::Drawing2D::CustomLineCap(nullptr, hPath);
                 //カスタムキャップの指定
                 p->CustomStartCap = HookStartCap;

                 //塗りつぶすカスタムキャップの定義
                 System::Drawing::Drawing2D::CustomLineCap ^HookEndCap
                     = gcnew System::Drawing::Drawing2D::CustomLineCap(hPath, nullptr);
                 //カスタムキャップの指定
                 p->CustomEndCap = HookEndCap;

                 //矢印の描画
                 e->Graphics->DrawLine(p, 10, 100, 200, 100);

                 //ペン幅を指定して矢印を描画
                 p->Width = 3;
                 e->Graphics->DrawLine(p, 10, 180, 200, 180);

             }

まず、矢印の大きさはSystem::Drawing::Drawing2D::AdjustableArrowCapクラスで幅と高さを指定します。
幅と高さの関係は以下のようになっています。
矢印の大きさの変更、任意形状の指定
また、塗りつぶした矢印を描きたい場合は

System::Drawing::Drawing2D::AdjustableArrowCap^ myArrow
                 = gcnew System::Drawing::Drawing2D::AdjustableArrowCap(20, 20, true);

のように指定します。

また、任意形状の矢印を描画したい場合は、矢印の形状そのものはGraphicPathで指定した形状をSystem::Drawing::Drawing2D::CustomLineCapクラスに指定する事で矢印を描画できます。

この時、GraphicPathで矢印の形状を指定する時の座標系は以下のように、線の中心から線の端点へ向かう方向が+Y軸方向となり、その反時計まわりに90度の方向が+X軸方向となります。
矢印の大きさの変更、任意形状の指定

塗りつぶさない矢印を描画する場合は
System::Drawing::Drawing2D::CustomLineCap ^HookStartCap
                  = gcnew System::Drawing::Drawing2D::CustomLineCap(nullptr, hPath);

塗りつぶす矢印を描画する場合は
System::Drawing::Drawing2D::CustomLineCap ^HookStartCap
                  = gcnew System::Drawing::Drawing2D::CustomLineCap(hPath, nullptr);

のように、CustomLineCapのどちらかに引数に作成したGraphicPathを指定します。

ここで、バグ?のような動作があり、同じGraphicPathを指定しているにも関わらず、塗りつぶすか?塗りつぶさないか?によって実際に描画される大きさが異なる場合もあるようにです。

また、実際に描画される矢印の大きさは線の幅(PenWidthプロパティ)の値に応じて大きさが変わります。

Loading...
スポンサーリンク

スポンサーリンク 最近の記事
(09/18)  計測測定展に光切断のデモを出展しました
(08/17)  ディジタル画像技術事典200に記事が載りました
(06/09)  光切断を画像センシング展で公開
(05/14)  中国(上海)へ行って来ました
(04/12)  韓国へ行って来ました
(03/10)  私の求める新人像
(01/18)  エレクトロテストジャパンにカラー光切断法のデモを出展しました。
(12/23)  ユニークアクセス200万達成!
(12/10)  【カラー光切断法】YouTube動画まとめ
(11/04)  国際画像機器展2014にカラー光切断法を出展します。
(10/05)  第25回コンピュータビジョン勉強会@関東に参加してきました。
(09/08)  フーリエ変換の記事を追加しました。
(08/09)  【画像処理】ランキング低下中
(07/06)  記事の更新が停滞中...
(06/08)  画像センシング展2014でカラー光切断法のデモを行います。
(05/17)  カラー光切断法の動画を公開しました。
(04/30)  ソニーα NEX-5Rで星空撮影
(04/10)  カラー光切断法の取込結果を追加しました
(03/08)  Korea Vision Show 2014へ行ってきました
(02/05)  フーリエ変換シリーズを始めます。
(01/06)  2014年、あけましておめでとうございます。
(12/04)  カラー光切断法を公開(国際画像機器展2013にて)
(11/13)  国際画像機器展2013に出展します
(10/14)  「画像処理のためのC#」はじめます。
(09/16)  【C#,VB.NET】高速描画コントロールをバージョンアップしました。
(09/04)  拡大鏡に輝度値表示、ルーラー機能を追加した個人ツールを公開
(08/05)  7月の拍手Top5
(07/06)  2013年6月人気記事Top5
(05/12)  SONY α NEX-5Rレビュー
(04/24)  SONY α NEX-5RY購入

Windowsドライバの削除方法

今回は唐突にWindowsドライバの削除方法ですが、実はKinectのドライバが何種類か出回っていて、ドライバを切り替えたいが為に今回はドライバの削除方法を自分の備忘録もかねて。

注)ドライバの削除を誤ると、他のデバイスが動作しなくなる場合がありますので、ドライバの削除は十分注意のうえ、自己責任で行って下さい。

Windowsのドライバを削除する場合、スタートメニューよりコントロールパネル→デバイスマネージャーで削除するデバイスを右クリックして削除を行っても、デバイスマネージャーのメニューの操作→ハードウェア変更のスキャンをクリックすると削除したはずのドライバが元に戻ってしまいます。

Windowsドライバの削除方法

そうならないようにするためにもドライバを完全に削除する方法を紹介します。

まず、削除するデバイスを選択し、右クリックしプロパティをクリックします。

Windowsドライバの削除方法

次に表示されたウィンドウのドライバータブのドライバーの詳細をクリックします。

Windowsドライバの削除方法

するとデバイスドライバが使用しているファイルが表示されているので、これらのファイルを削除します。

ちなみにKinect-v**-withsourceを使ってドライバをインストールした場合は以下の3つのファイルを削除します。
C:\Windows\System32\drivers\libusb0.sys
C:\Windows\System32\libusb0.dll
C:\Windows\SysWOW64\libusb0.dll

(ただし、削除したドライバが元に戻らなくするだけなら、これらのファイルを削除する必要はありません。
 あくまで、完全にドライバを削除する場合)


次にC:\Windows\infのフォルダ内にある*.infファイルの中から、削除するデバイスが使用していると思われるファイルを見つけます。
infファイルをメモ帳などで開き、DeviceNameやSourceNameなどを参考にしながら対象のinfファイルを探し出します。

ちなみに、Kinect-v**-withsourceを使ってドライバをインストールした場合は、以下のように表示されている3つのファイルが相当します。

; Xbox_NUI_Motor.inf
; Copyright (c) 2010 libusb-win32 (GNU LGPL)
[Strings]
DeviceName = "Xbox NUI Motor"
VendorName = "Microsoft Corp."
SourceName = "Xbox NUI Motor Install Disk"
DeviceID   = "VID_045E&PID_02B0"
DeviceGUID = "{283E6E32-2356-4775-9D97-0B4EA8775D39}"

・・・

; Xbox_NUI_Camera.inf
; Copyright (c) 2010 libusb-win32 (GNU LGPL)

[Strings]
DeviceName = "Xbox NUI Camera"
VendorName = "Microsoft Corp."
SourceName = "Xbox NUI Camera Install Disk"
DeviceID   = "VID_045E&PID_02AE"
DeviceGUID = "{D3074D04-3130-4FF6-A71F-D810C5D59867}"
・・・

; Xbox_NUI_Audio.inf
; Copyright (c) 2010 libusb-win32 (GNU LGPL)

[Strings]
DeviceName = "Xbox NUI Audio"
VendorName = "Microsoft Corp."
SourceName = "Xbox NUI Audio Install Disk"
DeviceID   = "VID_045E&PID_02AD"
DeviceGUID = "{D4AF50D4-8548-420F-87E4-F3B9AE4F5918}"
・・・

*.infファイルはoem**.infというようなファイル名になっている場合が多いのですが、oem**.infファイル同じ名前のoem**.PNFファイルの2ファイルをセットで削除します。
Kinectの場合、Motor、Camera、Audio用のファイル3セット(*.infと*.PNF)、計6つのファイルを削除します。

そして最後に?(最後じゃなくてもいいかも?)、削除するデバイスを選択して右ボタンクリックで削除をクリックします。
Windowsドライバの削除方法

これで、ハードウェア変更のスキャンを行っても、ドライバが元に戻る事は無くなるので、新たにドライバをインストールすることが可能となります。

Loading...
スポンサーリンク

スポンサーリンク 最近の記事
(09/18)  計測測定展に光切断のデモを出展しました
(08/17)  ディジタル画像技術事典200に記事が載りました
(06/09)  光切断を画像センシング展で公開
(05/14)  中国(上海)へ行って来ました
(04/12)  韓国へ行って来ました
(03/10)  私の求める新人像
(01/18)  エレクトロテストジャパンにカラー光切断法のデモを出展しました。
(12/23)  ユニークアクセス200万達成!
(12/10)  【カラー光切断法】YouTube動画まとめ
(11/04)  国際画像機器展2014にカラー光切断法を出展します。
(10/05)  第25回コンピュータビジョン勉強会@関東に参加してきました。
(09/08)  フーリエ変換の記事を追加しました。
(08/09)  【画像処理】ランキング低下中
(07/06)  記事の更新が停滞中...
(06/08)  画像センシング展2014でカラー光切断法のデモを行います。
(05/17)  カラー光切断法の動画を公開しました。
(04/30)  ソニーα NEX-5Rで星空撮影
(04/10)  カラー光切断法の取込結果を追加しました
(03/08)  Korea Vision Show 2014へ行ってきました
(02/05)  フーリエ変換シリーズを始めます。
(01/06)  2014年、あけましておめでとうございます。
(12/04)  カラー光切断法を公開(国際画像機器展2013にて)
(11/13)  国際画像機器展2013に出展します
(10/14)  「画像処理のためのC#」はじめます。
(09/16)  【C#,VB.NET】高速描画コントロールをバージョンアップしました。
(09/04)  拡大鏡に輝度値表示、ルーラー機能を追加した個人ツールを公開
(08/05)  7月の拍手Top5
(07/06)  2013年6月人気記事Top5
(05/12)  SONY α NEX-5Rレビュー
(04/24)  SONY α NEX-5RY購入

【OpenCV2.2】新規プロジェクトの作成方法

メインページOpenCV

OpenCVを始めたばかりのころ、OpenCVのサンプルプログラムはOpenCV.jpのHPにサンプルプログラムは載っていますが、これをどうやって使えばいいのか?分からなかった覚えがあります。
ということで、これらのサンプルプログラムを使うためのプロジェクトの作成方法を示します。

サンプルプロジェクトはこちらに公開しています。

今回はOpenCV2.2およびVisual Studio2010を用いた場合を例にとって紹介します。

新規プロジェクトの作成方法

Visual Studio を起動し、新しいプロジェクトをクリックします。
OpenCV2.2新規プロジェクトの作成方法

開いたウィンドウのWin32コンソールアプリケーションを選択し、任意の名前および場所を指定します。

OpenCV2.2新規プロジェクトの作成方法
OKボタンをクリックし、次へをクリックします。
OpenCV2.2新規プロジェクトの作成方法
さらに表示されたウィンドウの完了をクリックします。
OpenCV2.2新規プロジェクトの作成方法
すると、空の状態のソースコードが作成されます。
OpenCV2.2新規プロジェクトの作成方法
OpenCV.jpのサンプルとは、mainの部分がちょっと異なりますが、気にせず、そのままにしておいて下さい。

次にOpenCV2.2の入手、ダウンロード、インストール、環境設定の最後の部分でも紹介していますが、ヘッダファイルをプログラムから参照できるように、OpenCVのヘッダファイルのディレクトリを指定します。

OpenCV2.2新規プロジェクトの作成方法

プロジェクトのプロパティで構成プロパティ→C/C++→全般追加のインクルードディレクトリ
C:\OpenCV2.2\include
を指定します。

あとは、作成したcppファイル(上記の例ではOpenCV2.2Sample.cpp)にプログラムをしていけばOKです。

以下、画像を開き、ガウシアンフィルタ処理を行い、処理前、処理後の画像を表示するだけの簡単なサンプルプログラムを示します。

// OpenCV2.2Sample.cpp : コンソール アプリケーションのエントリ ポイントを定義します。
//


#include "stdafx.h"

//プロジェクトのプロパティ⇒C/C++⇒全般 の追加のインクルードディレクトリに
// 『C:\OpenCV2.2\include』を追加のこと

#include "opencv2\\opencv.hpp"

#ifdef _DEBUG
    //Debugモードの場合
    #pragma comment(lib,"C:\\OpenCV2.2\\lib\\opencv_core220d.lib")
   
#pragma comment(lib,"C:\\OpenCV2.2\\lib\\opencv_imgproc220d.lib")
   
#pragma comment(lib,"C:\\OpenCV2.2\\lib\\opencv_highgui220d.lib")
   
#pragma comment(lib,"C:\\OpenCV2.2\\lib\\opencv_objdetect220d.lib")
    //以下、必要に応じて追加
    //#pragma comment(lib,"C:\\OpenCV2.2\\lib\\opencv_ml220d.lib")
    //#pragma comment(lib,"C:\\OpenCV2.2\\lib\\opencv_features2d220d.lib")
    //#pragma comment(lib,"C:\\OpenCV2.2\\lib\\opencv_video220d.lib")
    //#pragma comment(lib,"C:\\OpenCV2.2\\lib\\opencv_calib3d220d.lib")
    //#pragma comment(lib,"C:\\OpenCV2.2\\lib\\opencv_flann220d.lib")
    //#pragma comment(lib,"C:\\OpenCV2.2\\lib\\opencv_contrib220d.lib")
    //#pragma comment(lib,"C:\\OpenCV2.2\\lib\\opencv_legacy220d.lib")
    //#pragma comment(lib,"C:\\OpenCV2.2\\lib\\opencv_gpu220d.lib")

#else
    //Releaseモードの場合
   
#pragma comment(lib,"C:\\OpenCV2.2\\lib\\opencv_core220.lib"
   
#pragma comment(lib,"C:\\OpenCV2.2\\lib\\opencv_imgproc220.lib")
   
#pragma comment(lib,"C:\\OpenCV2.2\\lib\\opencv_highgui220.lib")
   
#pragma comment(lib,"C:\\OpenCV2.2\\lib\\opencv_objdetect220.lib")
    //以下、必要に応じて追加
    //#pragma comment(lib,"C:\\OpenCV2.2\\lib\\opencv_ml220.lib")
    //#pragma comment(lib,"C:\\OpenCV2.2\\lib\\opencv_features2d220.lib")
    //#pragma comment(lib,"C:\\OpenCV2.2\\lib\\opencv_video220.lib")
    //#pragma comment(lib,"C:\\OpenCV2.2\\lib\\opencv_calib3d220.lib")
    //#pragma comment(lib,"C:\\OpenCV2.2\\lib\\opencv_flann220.lib")
    //#pragma comment(lib,"C:\\OpenCV2.2\\lib\\opencv_contrib220.lib")
    //#pragma comment(lib,"C:\\OpenCV2.2\\lib\\opencv_legacy220.lib")
    //#pragma comment(lib,"C:\\OpenCV2.2\\lib\\opencv_gpu220.lib")

#endif

int _tmain(int argc, _TCHAR* argv[])
{
    //画像データの読込
    IplImage* src_img = cvLoadImage("C:\\OpenCV2.2\\samples\\c\\lena.jpg", CV_LOAD_IMAGE_ANYDEPTH | CV_LOAD_IMAGE_ANYCOLOR);
    if (src_img == NULL){
        return 0;
    }

    //表示ウィンドウの作成
    cvNamedWindow("src");
    cvNamedWindow("dst");

    //処理後画像データの確保
    IplImage* dst_img = cvCreateImage(cvGetSize(src_img), src_img->depth, src_img->nChannels);

    //画像処理例(ガウシアンフィルタ)
    cvSmooth(src_img, dst_img, CV_GAUSSIAN, 9);

    //画像の表示
    cvShowImage ("src", src_img);
    cvShowImage ("dst", dst_img);

    //キー入力待ち
    cvWaitKey (0);

    //全てのウィンドウの削除
    cvDestroyAllWindows();

    //画像データの解放
    cvReleaseImage(&src_img);
    cvReleaseImage(&dst_img);

    return 0;
}


【関連記事】
OpenCV2.2の入手、ダウンロード、インストール、環境設定


Loading...
スポンサーリンク

スポンサーリンク 最近の記事
(09/18)  計測測定展に光切断のデモを出展しました
(08/17)  ディジタル画像技術事典200に記事が載りました
(06/09)  光切断を画像センシング展で公開
(05/14)  中国(上海)へ行って来ました
(04/12)  韓国へ行って来ました
(03/10)  私の求める新人像
(01/18)  エレクトロテストジャパンにカラー光切断法のデモを出展しました。
(12/23)  ユニークアクセス200万達成!
(12/10)  【カラー光切断法】YouTube動画まとめ
(11/04)  国際画像機器展2014にカラー光切断法を出展します。
(10/05)  第25回コンピュータビジョン勉強会@関東に参加してきました。
(09/08)  フーリエ変換の記事を追加しました。
(08/09)  【画像処理】ランキング低下中
(07/06)  記事の更新が停滞中...
(06/08)  画像センシング展2014でカラー光切断法のデモを行います。
(05/17)  カラー光切断法の動画を公開しました。
(04/30)  ソニーα NEX-5Rで星空撮影
(04/10)  カラー光切断法の取込結果を追加しました
(03/08)  Korea Vision Show 2014へ行ってきました
(02/05)  フーリエ変換シリーズを始めます。
(01/06)  2014年、あけましておめでとうございます。
(12/04)  カラー光切断法を公開(国際画像機器展2013にて)
(11/13)  国際画像機器展2013に出展します
(10/14)  「画像処理のためのC#」はじめます。
(09/16)  【C#,VB.NET】高速描画コントロールをバージョンアップしました。
(09/04)  拡大鏡に輝度値表示、ルーラー機能を追加した個人ツールを公開
(08/05)  7月の拍手Top5
(07/06)  2013年6月人気記事Top5
(05/12)  SONY α NEX-5Rレビュー
(04/24)  SONY α NEX-5RY購入

OpenCV2.2の入手、ダウンロード、インストール、環境設定

メインページOpenCV


※現在OpenCV2.3が公開されています。
  OpenCV2.3についての解説は
     OpenCV2.3の入手、ダウンロード、インストール、環境設定
  を参照下さい。
     下記はOpenCV2.2のときのものです。



OpenCV2.2は内容こそ、そこそこ変更になったものの、OpenCVのインストール方法はOpenCV2.1とほぼ同じです。
これまでにもインストール方法についてはOpenCV1.0OpenCV2.0OpenCV2.1と紹介してきたので、今回も簡単に紹介したいと思います。

OpenCV2.1のインストール方法については、VisualStudio2010向けのインストールパッケージ(OpenCV-2.2.0-win32-vs2010.exe)を使う方法と、64bit対応やIPP、TBBなどのへの細かい設定をCMakeというソフトを使ってOpenCVをビルドする方法とがあるのですが、今回は前者の方を説明します。後者の方は少し設定が難しくなるので、初心者の方にはあまりお勧めできませんが、やりたい場合はOpenCV2.1を参考に設定してみて下さい。

ただし、OpenCV-2.2.0-win32-vs2010.exeを使った場合でもVIsual Studio2008でも、64bitOSでも動作(32bit動作)動作します。VIsual Studio2008で動作させるには、おそらくMicrosoft Visual C++ 2010 再頒布可能パッケージが必要になると思います。(私の環境ではVS2005 Standard、VS2008Ex、VS2010Exとインストールしているので、未評価です。)

OpenCV2.2の入手

OpenCV2.2は以下のページより入手します。
http://sourceforge.net/projects/opencvlibrary/

このページの『Download Now!』をクリックして、ファイル(OpenCV-2.2.0-win32-vs2010.exe)を入手します。
OpenCV2.2の入手、ダウンロード、インストール、環境設定

OpenCV2.2のインストール方法

ダウンロードしたファイル(OpenCV-2.2.0-win32-vs2010.exe)をダブルクリックしてOpenCV2.2のインストールを開始します。
OpenCV2.2の入手、ダウンロード、インストール、環境設定

上図のような画面が表示されるので、『次へ』をクリックします。

OpenCV2.2の入手、ダウンロード、インストール、環境設定

表示されたライセンス契約(いわゆるBSDライセンス)をご確認のうえ、『同意する』をクリック

OpenCV2.2の入手、ダウンロード、インストール、環境設定

Add OpenCV to the system PATH for all users
 もしくは
Add OpenCV to the system PATH for current users

を選択して『次へ』をクリック (デフォルト設定とは異なるので注意!

OpenCV2.2の入手、ダウンロード、インストール、環境設定

インストール先を選択し、『次へ』をクリック
(今度の説明などで、このデフォルト設定を基本として説明しますので、特に変更の必要が無い場合はデフォルトのまま設定して下さい。)

OpenCV2.2の入手、ダウンロード、インストール、環境設定

スタートメニューフォルダの設定が表示されますが、このまま『次へ』をクリック

OpenCV2.2の入手、ダウンロード、インストール、環境設定

セットアップする内容も、このまま『次へ』をクリック

OpenCV2.2の入手、ダウンロード、インストール、環境設定

上図が表示されたら、『完了』をクリックして、インストールは完了です。

インストール出来たか?確認のため、スタートメニューの全てのプログラム→OpenCV2.2.0→C Samples 内の実行ファイル(例えば、morphology.exeなど)が実行できるかどうか確認してみて下さい。
(ここで、実行できない場合はPATHの設定がされていない可能性があります。)

ライブラリファイル(*.lib)とヘッダファイル(*.h)の設定

ライブラリファイル(*.lib)とヘッダファイル(*.h)の設定方法は、好みの分かれるところなので、設定方法は各個人によって異なると思いますが、私の場合は以下のようにしています。

OpenCV2.2の場合は、ヘッダファイルから別のヘッダファイルがインクルードされるので、プロジェクトの設定で『追加のインクルードディレクトリ』の設定は必須のようです。

設定方法は、メニューのプロジェクト→プロパティでプロパティページを開きます。
OpenCV2.2の入手、ダウンロード、インストール、環境設定
構成プロパティ→C/C++→全般追加のインクルードディレクトリに、OpenCV2.2のincludeディレクトリを指定します。
デフォルトでインストールした場合は
C:\OpenCV2.2\include
を指定します。

あとはソースコード中に以下のように記載します。
(プロジェクトのプロパティの構成プロパティ→リンカー→入力で設定しても構いません。)

//プロジェクトのプロパティ⇒C/C++⇒全般 の追加のインクルードディレクトリに
// 『C:\OpenCV2.2\include』を追加のこと

#include "opencv2\\opencv.hpp"

#ifdef _DEBUG
    //Debugモードの場合
    #pragma comment(
lib,"C:\\OpenCV2.2\\lib\\opencv_core220d.lib")            // opencv_core
   
#pragma comment(lib,"C:\\OpenCV2.2\\lib\\opencv_imgproc220d.lib")        // opencv_imgproc
   
#pragma comment(lib,"C:\\OpenCV2.2\\lib\\opencv_highgui220d.lib")        // opencv_highgui
   
#pragma comment(lib,"C:\\OpenCV2.2\\lib\\opencv_objdetect220d.lib")    // opencv_objdetect
    //以下、必要に応じて追加
    //#pragma comment(lib,"C:\\OpenCV2.2\\lib\\opencv_ml220d.lib")            // opencv_ml
    //#pragma comment(lib,"C:\\OpenCV2.2\\lib\\opencv_features2d220d.lib")    // opencv_features2d
    //#pragma comment(lib,"C:\\OpenCV2.2\\lib\\opencv_video220d.lib")        // opencv_video
    //#pragma comment(lib,"C:\\OpenCV2.2\\lib\\opencv_calib3d220d.lib")        // opencv_calib3d
    //#pragma comment(lib,"C:\\OpenCV2.2\\lib\\opencv_flann220d.lib")        // opencv_flann
    //#pragma comment(lib,"C:\\OpenCV2.2\\lib\\opencv_contrib220d.lib")        // opencv_contrib
    //#pragma comment(lib,"C:\\OpenCV2.2\\lib\\opencv_legacy220d.lib")        // opencv_legacy
    //#pragma comment(lib,"C:\\OpenCV2.2\\lib\\opencv_gpu220d.lib")            // opencv_gpu

#else
    //Releaseモードの場合
   
#pragma comment(lib,"C:\\OpenCV2.2\\lib\\opencv_core220.lib")            // opencv_core
   
#pragma comment(lib,"C:\\OpenCV2.2\\lib\\opencv_imgproc220.lib")        // opencv_imgproc
   
#pragma comment(lib,"C:\\OpenCV2.2\\lib\\opencv_highgui220.lib")        // opencv_highgui
   
#pragma comment(lib,"C:\\OpenCV2.2\\lib\\opencv_objdetect220.lib")    // opencv_objdetect
    //以下、必要に応じて追加
    //#pragma comment(lib,"C:\\OpenCV2.2\\lib\\opencv_ml220.lib")            // opencv_ml
    //#pragma comment(lib,"C:\\OpenCV2.2\\lib\\opencv_features2d220.lib")    // opencv_features2d
    //#pragma comment(lib,"C:\\OpenCV2.2\\lib\\opencv_video220.lib")        // opencv_video
    //#pragma comment(lib,"C:\\OpenCV2.2\\lib\\opencv_calib3d220.lib")        // opencv_calib3d
    //#pragma comment(lib,"C:\\OpenCV2.2\\lib\\opencv_flann220.lib")        // opencv_flann
    //#pragma comment(lib,"C:\\OpenCV2.2\\lib\\opencv_contrib220.lib")        // opencv_contrib
    //#pragma comment(lib,"C:\\OpenCV2.2\\lib\\opencv_legacy220.lib")        // opencv_legacy
    //#pragma comment(lib,"C:\\OpenCV2.2\\lib\\opencv_gpu220.lib")            // opencv_gpu

#endif

#pragmaをコメントアウトしている部分は書かなくても、ほぼ大丈夫ですし、コメントアウトしなくても大丈夫です。
ただ、opencv_ml、opencv_feature2dなどの関数を使う場合にはコメントアウトは外して下さい。


【関連記事】
新規プロジェクトの作成方法


Loading...
スポンサーリンク

スポンサーリンク 最近の記事
(09/18)  計測測定展に光切断のデモを出展しました
(08/17)  ディジタル画像技術事典200に記事が載りました
(06/09)  光切断を画像センシング展で公開
(05/14)  中国(上海)へ行って来ました
(04/12)  韓国へ行って来ました
(03/10)  私の求める新人像
(01/18)  エレクトロテストジャパンにカラー光切断法のデモを出展しました。
(12/23)  ユニークアクセス200万達成!
(12/10)  【カラー光切断法】YouTube動画まとめ
(11/04)  国際画像機器展2014にカラー光切断法を出展します。
(10/05)  第25回コンピュータビジョン勉強会@関東に参加してきました。
(09/08)  フーリエ変換の記事を追加しました。
(08/09)  【画像処理】ランキング低下中
(07/06)  記事の更新が停滞中...
(06/08)  画像センシング展2014でカラー光切断法のデモを行います。
(05/17)  カラー光切断法の動画を公開しました。
(04/30)  ソニーα NEX-5Rで星空撮影
(04/10)  カラー光切断法の取込結果を追加しました
(03/08)  Korea Vision Show 2014へ行ってきました
(02/05)  フーリエ変換シリーズを始めます。
(01/06)  2014年、あけましておめでとうございます。
(12/04)  カラー光切断法を公開(国際画像機器展2013にて)
(11/13)  国際画像機器展2013に出展します
(10/14)  「画像処理のためのC#」はじめます。
(09/16)  【C#,VB.NET】高速描画コントロールをバージョンアップしました。
(09/04)  拡大鏡に輝度値表示、ルーラー機能を追加した個人ツールを公開
(08/05)  7月の拍手Top5
(07/06)  2013年6月人気記事Top5
(05/12)  SONY α NEX-5Rレビュー
(04/24)  SONY α NEX-5RY購入

【OpenCV2.2】ライブラリ構成(*.lib,*.hなど)

メインページOpenCV

OpenCV2.2からはライブラリの構成が再構築されています。
旧バージョンと、OpenCV2.2の構成の概略は以下の通りとなっています。

OpenCV2.2 旧バージョン ヘッダファイル ライブラリファイル 概要
opencv_core CXCORE core_c.h (C言語用)
core.hpp (C++用)
opencv_core220.lib
opencv_core220d.lib
メモリ確保/解放、行列、
演算、描画など
opencv_imgproc CV imgproc_c.h (C言語用)
imgproc.hpp (C++用)
opencv_imgproc220.lib
opencv_imgproc220d.lib
画像処理
一般的なフィルタ処理など
opencv_highgui HighGUI highgui_c.h (C言語用)
highgui.hpp (C++用)
opencv_highgui220.lib
opencv_highgui220d.lib
ウィンドウなどのGUI、
ファイル読込/保存、
ビデオファイル、カメラなど
opencv_ml ml ml.hpp opencv_ml220.lib
opencv_ml220d.lib
サポートベクタマシン、
ブースティングなどの
機械学習
opencv_features2d features2d.hpp opencv_features2d220.lib
opencv_features2d220d.lib
SURF、FASTなどの
特徴抽出
opencv_video background_segm.hpp opencv_video220.lib
opencv_video220d.lib
前景/背景分離
tracking.hpp トラッキング
opencv_objdetect objdetect.hpp opencv_objdetect220.lib
opencv_objdetect220d.lib
Haar、LBP、HOGなどの
オブジェクト検出器
opencv_calib3d calib3d.hpp opencv_calib3d220.lib
opencv_calib3d220d.lib
カメラキャリブレーション、
ステレオカメラなど
opencv_flann flann.hpp opencv_flann220.lib
opencv_flann220d.lib
高速最近傍処理(FLANN)
など
opencv_contrib contrib.hpp opencv_contrib220.lib
opencv_contrib220d.lib
肌検出、MeanShiftなど
完全な状態ではない
opencv_legacy legacy.hpp opencv_legacy220.lib
opencv_legacy220d.lib
旧関数との互換用
opencv_gpu gpu.hpp opencv_gpu220.lib
opencv_gpu220d.lib
GPU(CUDA)による行列演算、
画像処理など。(β版の扱い)

ライブラリファイル(*.lib)はReleaseモードの場合、『d』のつかないlibファイルを、Debugモードの場合、『d』の付いたlibファイルを、参照設定して下さい。

ヘッダファイルはopencv.hppにまとめてインクルードされているので、このファイル(opencv.hpp)一つをインクルードすると、すべてインクルードされます。

また、OpenCV-2.2.0-win32-vs2010.exeを使ってデフォルト状態でOpenCV2.2をインストールした時の主なファイルのフォルダ構成は以下の通りです。

C:\OpenCV2.2
          ┣ bin
          ┃  opencv_core220.dll
          ┃  opencv_core220d.dll
          ┃  opencv_imgproc220.dll
          ┃  opencv_imgproc220d.dll
          ┃  opencv_highgui220.dll
          ┃  opencv_highgui220d.dll
          ┃  opencv_ml220.dll
          ┃  opencv_ml220d.dll
          ┃  opencv_features2d220.dll
          ┃  opencv_features2d220d.dll
          ┃  opencv_video220.dll
          ┃  opencv_video220d.dll
          ┃  opencv_objdetect220.dll
          ┃  opencv_objdetect220d.dll
          ┃  opencv_calib3d220.dll
          ┃  opencv_calib3d220d.dll
          ┃  opencv_flann220.dll
          ┃  opencv_flann220d.dll
          ┃  opencv_contrib220.dll
          ┃  opencv_contrib220d.dll
          ┃  opencv_legacy220.dll
          ┃  opencv_legacy220d.dll
          ┃  opencv_gpu220.dll
          ┃  ┗ opencv_gpu220d.dll
          ┣ include
          ┃  opencv
          ┃  ┃  cv.h
          ┃  ┃  cv.hpp
          ┃  ┃  cxcore.h
          ┃  ┃  cxcore.hpp
          ┃  ┃  highgui.h
          ┃  ┃  ml.h
          ┃  opencv2
          ┃  ┃  opencv.hpp
          ┃  ┃  core
          ┃      core_c.h
          ┃      core.hpp
          ┃  ┃  imgproc
          ┃      imgproc_c.h
          ┃      imgproc.hpp
          ┃  ┃  highgui
          ┃      highgui_c.h
          ┃      highgui.hpp
          ┃  ┃  ml
          ┃      ml.hpp
          ┃  ┃  features2d
          ┃      features2d.hpp
          ┃  ┃  video
          ┃      background_segm.hpp
          ┃      tracking.hpp
          ┃  ┃  objdetect
          ┃      objdetect.hpp
          ┃  ┃  calib3d
          ┃      calib3d.hpp
          ┃  ┃  flann
          ┃      flann.hpp
          ┃  ┃  contrib
          ┃      contrib.hpp
          ┃  ┃  legacy
          ┃      legacy.hpp
          ┃  ┃  gpu
          ┃         gpu.hpp
          lib
              
opencv_core220.lib
               opencv_core220d.lib
               opencv_imgproc220.lib
               opencv_imgproc220d.lib
               opencv_highgui220.lib
               opencv_highgui220d.lib
               opencv_ml220.lib
               opencv_ml220d.lib
               opencv_features2d220.lib
               opencv_features2d220d.lib
               opencv_video220.lib
               opencv_video220d.lib
               opencv_objdetect220.lib
               opencv_objdetect220d.lib
               opencv_calib3d220.lib
               opencv_calib3d220d.lib
               opencv_flann220.lib
               opencv_flann220d.lib
               opencv_contrib220.lib
               opencv_contrib220d.lib
               opencv_legacy220.lib
               opencv_legacy220d.lib
               opencv_gpu220.lib
               ┗ opencv_gpu220d.lib

C:\OpenCV2.2\include\opencv
内のcv.hなどのファイルは使用可能ですが、
C:\OpenCV2.2\include\opencv2内のimgproc.hppなどを使うのを推奨とされています。

Loading...
スポンサーリンク



現在の閲覧者数: / 合計