2009年6月23日火曜日

Digiclopsその5

REX-CFW3のIEEE1394カードを購入。バスパワーなのでDigiclopsカメラに電源が供給できるかと、1mm程度の期待をして、ノートパソコンに装着してみたが、やはり期待通りには行かなかった。・・・が、もちろんこうなることは想定内で、このカードには電源が挿せるので、この電源を購入し再度チャレンジを試みる。バスパワーで淡い期待をしていたのでまだ購入しておらず本日ネットで購入。

IOデータのカードの電源はどこもかしこも(リアルショップもネットショップも)販売していないため諦めました。最新のものを購入するのは楽だが、古いものを購入するのは難しい・・・

2009年6月22日月曜日

ボヤキその4

出張から帰ってきました。ノートパソコンでDigiclopsを使うために、IEEE1394カードを購入。
使えるかどうかは良くわかりません。明日チェックです。っというのも出張後の事務処理、メールチェックで何もできないから・・・ああ、、、秘書欲しい。

2009年6月18日木曜日

OpenCVその7

これまで動かなかったサンプルのキャリブレーションコードがやっと動いた。チェスボードの数の設定が違っていたので動かなかったらしい。人のプログラムの解析は難しいです。

とりあえずこれでキャリブレーションプログラムが自作できるメドがつきました。・・・が明日から出張。数日開発は停滞です。

2009年6月17日水曜日

ボヤキその3

携帯からぼやいてみた。

ボヤキその2

ああ、今日も一日雑用三昧。秘書が欲しい。エージェントプログラムは一体どうなったんだろう・・・

細切れ時間をサンプルコード解読に費やすか・・・

2009年6月16日火曜日

ボヤキその1

雑用おおすぎ。メールおおすぎ。全然すすまない・・・。

2009年6月15日月曜日

Digiclopsその4

カメラがまともに写るようになったので、セルフキャリブレーションのプログラムを書き書き・・・
雑用が多くてどうも進まない・・・

とりあえず、これまでのことをまとめておく。
-----
・Digiclops, Triclopsのインクルードファイル、ライブラリファイル、DLLは昔のを使う。
・Visual Studioでは「ツール」→「オプション」で、上記のファイルのパスを設定。
・「プロジェクト」→「プロパティ」で、ライブラリファイルに関しては依存ファイルを設定する。
-----
あんなに時間掛ったのに、こ、こんだけ。さみしいのお・・・

2009年6月11日木曜日

Digiclopsその3

DigiclopsGetTriclopsContextFromCamera関数でContextをどうしても持ってこないエラーがやっと解決!開発環境のせいではもちろんなかった。なんと・・・

system32フォルダに放り込んだdll群のバージョンが、「新しすぎた」こと!おいおい。古いならともかく新しくて動かないとはどういうことぞ。Pointgray社からわざわざ新しいライブラリをダウンロードしてきてインストールしたのに、そのおかげでこの始末。多分、新しいカメラ用で古くなったDigiclopsは相手にされていなかったのかも・・・

とにかく3日掛けたなぞが解けたのでめでたしめでたし。

Digiclopsその2

ライブラリの件は解決。プロジェクトのプロパティで、リンカ設定の依存ファイルのところにdigiclops.libとtriclops.libがなかっただけ。

しかし、今度はもっとややこしいエラーが。digiclopsGetTriclopsContextFromCamera関数で、Contextをとってこれないエラーが発生。付属のサンプルプログラム(exeファイル)だと、全く問題なしで動くのでハードウェアの問題ではなさそう。

とすると、VisualStdioのせい?とりあえずVC Exp, VC 2008, VC2005, VC6.0とこれまでの開発環境をどんどん入れて試してみるがすべて×。お手上げ~~~~。残すは.NET2003のみ。

多分VisualStdioは関係なさそう。これで3日も悩み中・・・はぁ。

2009年6月9日火曜日

Digiclopsその1

今日からOpenCVは少しお休み。Digiclopsカメラのプログラミング。
これ(http://www.viewplus.co.jp/products/digiclops/digiclops_main.html

SDKをインターネットから落としてきてインストール。
DigiclopsおよびTriclopsのincludeフォルダ、libフォルダ、binフォルダにある~.h,~.lib,~.dllをそれぞれVCのincludeフォルダ、libフォルダ、Windows\system32フォルダにコピー。

あとはサンプルプログラミングを組みビルド!

う~ん。コンパイルは問題なく通るがリンクがうまくいかない・・・digiclopsのライブラリフォルダを認識していないのだろうか・・・

OpenCVその6

OpenCVのサンプルプログラムなどを幾らかコンパイルしているとcvaux.hのエラーが頻発する。そこでいろいろと調べてみると、ヘッダファイルに文字化けがあることが判明!
ここ(http://www36.atwiki.jp/prolog/?cmd=word&word=cvaux.h%20%E3%82%A8%E3%83%A9%E3%83%BC&type=normal&page=OpenCV%E3%81%AE%E4%BF%AE%E6%AD%A3%E3%80%81%E3%83%93%E3%83%AB%E3%83%89)を参考に修正。

CvMemStorage* storage;のコメント部分で文字化けしてコメントが閉じられていない!

修正後、再度コンパイルしてみる。うほ!うまくいった。

2009年6月5日金曜日

OpenCVその5

ここ(http://pw1.atcms.jp/kencyo/index.php?OpenCV%A5%B5%A5%F3%A5%D7%A5%EB%A5%D7%A5%ED%A5%B0%A5%E9%A5%E0#r5859148)のページを参考にして、cvCreatCameraCaptureの引数をCV_CAP_IEEE1394に変更してトライ!

無念!やっぱり簡単にはいかないらしい。特殊なカメラだからなぁ・・・

もう少しサイト周りしてみよ。

OpenCVその4

さて、今日は2台のカメラから同時にキャプチャーできるようにする。ステレオ法による三次元計測ではどうしても必要なので・・・

単純に、カメラ関係の引数やら関数を2つに増やしてビルド・実行。
-----
#include
#include
int main( int argc, char** argv ){
  int key; CvCapture *capture1, *capture2;
  IplImage *frameImage1, *frameImage2;
  char windowNameCapture1[] = "Capture1";
  char windowNameCapture2[] = "Capture2";
  if((capture1 = cvCreateCameraCapture(0)) == NULL ){
    printf( "カメラ1が見つかりません\n" );
    return -1;
  }
  if((capture2 = cvCreateCameraCapture(1)) == NULL ){
    printf( "カメラ2が見つかりません\n" );
    return -1;
  }
  cvNamedWindow( windowNameCapture1, CV_WINDOW_AUTOSIZE );
  cvNamedWindow( windowNameCapture2, CV_WINDOW_AUTOSIZE );
  while( 1 ){
    frameImage1 = cvQueryFrame( capture1 );
    frameImage2 = cvQueryFrame( capture2 );
    cvShowImage( windowNameCapture1, frameImage1 );
    cvShowImage( windowNameCapture2, frameImage2 );
    key = cvWaitKey( 1 );
    if( key == 'q' ){ break; }
  }
  cvReleaseCapture( &capture1 );
  cvReleaseCapture( &capture2 );
  cvDestroyWindow( windowNameCapture1 );
  cvDestroyWindow( windowNameCapture2 );
  return 0;
}
-----
あっけなく実行可能。


以前、Let's Noteでやったときは2台目が全く動かなかったのでDirectShowを駆使してなんとか映しだしたのだが・・・。コンピュータによるのだろうか?研究用に購入したPCがこれまでになく調子がいい。○○工房さんの店長さんにボードなどの相性について相談に乗ってもらったのがよかったのかも。



ちなみに、写らない人は、USBボードやUSBカードを別途用意してUSBコントローラを分けるとうまくいくようです(本人確認)。USBの口が4つあってもネットワークのHUBのようなもので、制御しているところが1つになり2台を同時に制御してくれないようです。



さて、次はIEEEのカメラだな。

2009年6月4日木曜日

OpenCVその3

再起動して、もう一度実行したらdllエラーは改善。環境変数のPATHが有効になっていなかったらしい。


しかし、今度はcapture = cvCreateCameraCapture(-1))でエラー。引数を-1にすると自動的にカメラを探してくれるはずなのだが・・・


いろいろWebを検索しているとMicrosoft Visual C++ 2008 SP1 のインストールが必要らしい。

ここ(http://www.microsoft.com/downloads/thankyou.aspx?familyId=a5c84275-3b97-4ab7-a40d-3802b2af5fc2&displayLang=ja)からダウンロードしてインストール。再起動。


が動かない・・・


USBカメラ2台、専用ボードでCCDカメラ2台、IEEEで三眼カメラ1台、接続しているので迷ってしまうのだろうか。とりあえず、USBカメラだけ有効にして、引数を0にしてみる。


無事、カメラ画像がディスプレイ上に表示された!!少し感動。
今日はここまで。

OpenCVその2

とりあえず環境も整ったので、一番簡単なOpenCVのコードを書いてみる(前回示した参考書から)。
-----
#include
#include

int main( int argc, char** argv ){
    int key;
   CvCapture *capture;
   IplImage *frameImage;
   char windowNameCapture[] = "Capture";
   if((capture = cvCreateCameraCapture(-1)) == NULL ){
      printf( "カメラが見つかりません\n" );
      return -1;
   }
   cvNamedWindow( windowNameCapture, CV_WINDOW_AUTOSIZE );
   while( 1 ){
      frameImage = cvQueryFrame( capture );
      cvShowImage( windowNameCapture, frameImage );
      key = cvWaitKey( 1 );
      if( key == 'q' ){
         break;
      }
   }
   cvReleaseCapture( &capture );
   cvDestroyWindow( windowNameCapture );
   return 0;
}
-----
当然のごとく、「highgui.h」が見つかりません、と出た。全く何の設定もしていないので仕方なし。
ここ(http://co-coa.sakura.ne.jp/index.php?OpenCV%2F%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB)を参考にして、OpenCVのインクルードファイルとライブラリファイルのパスを設定。

あんまり関係ないかもしれないが、もともとあるパスの一番下に羅列した(多分、関係ない)。

そして、再度、リビルド!

1>LINK : fatal error LNK1104: ファイル 'cvcam.lib' を開くことができません。

あれ?cvcam.libがない?(調べてみると)あ、ない。じゃあいらない。リストから削除して再度、ビルド!

ビルド成功。cvcam.libいらないの?なんか最後に歯車が一個残って大丈夫かな?って感じ。
-----
では実行!今度は、highgui.dllがないと実行エラー。
・・・
休憩。

OpenCVその1

最近三次元計測の開発をサボっていたので再開。

コンピュータ(WindowsXP)とカメラはあるので、まずは開発環境をインストール。当然、お金はないので、MicrosoftのVisual C++ 2008 Expressを使用(ただだから)。

ここ(http://www.microsoft.com/japan/msdn/vstudio/Express/)からファイルをダウンロードし、クリック一つで呆気なくインストール完了(時間かかったけどね)。さすがWindows。楽チン極まりない。
-----
さて、次はカメラからの入力をどうするか。とりあえずOpenCVを使いますか。参考になるページもWeb上に沢山あるし、わかりやすい書籍も出ているし・・・
書籍:http://chabasilla.blog89.fc2.com/blog-category-9.html

ここ(http://sourceforge.net/project/showfiles.php?group_id=22870)からwincv-winへ移動し、OpenCV_1.1pre1a.exeファイルをダウンロード。ダウンロードファイル実行し、数クリックでこれも呆気なくインストール完了。本当にこんな簡単でいいのだろうか・・・
-----