3連休もっと計画的に使いたかった。。。

dandelion’s laboratoryに「Windows SDKインストール」という記事と「VS 2005でCVCAMを使う」という記事を更新しました.

それにしても,VC++でDirectShowを扱う環境としてPlatform SDKが最新だと思っていたのですが,現在は,Windows SDKが最新なんですね(Windows SDK自体は結構前にリリースされているみたいだけど。。。).

ということで新し物好きな性格上,相変わらずながら後先考えずPlatform SDKを削除して入れてみました.
(※インストールするとVC++ディレクトリのパス設定が初期状態に戻ってしまうので,事前にパスの設定を控えておかないと危険)

インストールしてからも,BaseClassesのビルド時にエラーと格闘する羽目になりましたが,英語サイトのBBSでなんとか解決(インクルードディレクトリの記述順で解決するとは思わなかった。。。←不毛な1時間を過ごした人).

ということで,カメラ周りの環境は一通り整った感じ.

**************

あと,余談ですが,FlyCapture SDKチュートリアルというサイトの存在に最近気付きました(遅)
簡単に言うと,Point Grey Research社カメラのFlycapture SDKとOpenCVを組み合わせた便利なサンプルが載っているサイトです.

いやいや,学生の時にこのサイトの存在知ってたらなぁ。。。という感じです(←PGRカメラをDirectShowカメラとして扱えるドライバ + CVCAMでプログラミングしてた人).研究でPGRカメラを用いている人でOpenCV使いたい!という人には便利かもしれません.

VC++でM_PIが使えなかった理由判明

学生の時からVC++でM_PIを使おうとしたら「M_PIが定義されてない」
ってエラーが出るんだろう? と思ってはいたものの,スルーして

#define M_PI 3.1415926535897932384626433832795

とか定義してだましだましやってたんですが,
(特にM_PIについて調べたわけじゃないけど)たまたま読んだblogにて

#define _USE_MATH_DEFINES
#include <math.h>

と定義してやると,うまくいくらしいということで
やってみたらうまくいった.でも,理由がわからないと
なんだか気持ち悪いので,math.hを読んでみると

#if defined(_USE_MATH_DEFINES) && !defined(_MATH_DEFINES_DEFINED)
#endif

の間に

#define M_PI 3.14159265358979323846

って記述してあるので,M_PIを使うようなプログラムでは,

#include <math.h>

でmath.hをインクルードする前に

#define _USE_MATH_DEFINES

としなきゃ、そりゃあ「M_PIが定義されてない」ってエラーも出るよなと納得.
長年つっかえてたものが取れてちょっとスッキリ.