Yahoo!ジオシティーズ ゲストブック  

  2014年5月16日 (金) 12時22分39秒
[名前] :   I.N.
[URL] :   
[コメント] :   もうすぐゲストブックが使えなくなるというので,Yahooブログを開設しました.ソフトウェアに関する質問等はそちらへどうぞ.
  2014年4月15日 (火) 11時24分57秒
[名前] :   MATU
[URL] :   
[コメント] :   またまた訂正します。もう一方の環境(小型PC)でも停止します。ただ、ソフトを起動した瞬間ではなくて、しばらくたってから突然停止する事があります。停止したときアプリの再起動だけで良い場合と、デバイスマネージャから見えなくなっていてカメラをいったんPCからはずして、また接続しないとうまく行かない場合がありました。
 
 
  2014年4月15日 (火) 11時25分38秒
[名前] :   MATU
[URL] :   
[コメント] :   100%再現する方のPCは私の開発機でcori5-2400 windows7 ultimate 64bit メモリ4Gです。
もう一方の再現しにくいのはATOM N270 Windows7 Pro 32bit メモリ2Gkの超小型PCです。
カメラは同一のHD-5000です。ドライバーはwindows標準のものを使用しています。デバイスマネージャで見ると開発機ではksthunk.sys 6.1.7600.16385とusbvideo.sys 6.1.7601.17514でした。
小型PCはusbvideo.sys 6.1.7600.16385だけでした。
そちらでは再現も難しいでしょうから、何かこちらでできる事があれば言ってください。
それから、停止するのはピンの接続をした時なので、それより前に判定ができれば止まらなくなるとは思います。現状では22で戻ってきたときにはすでにもう一方のアプリが止まっているので対応できません。
私のアプリは、上記とは違う別の2台のPCで監視に使用しており、何日も連続で稼働しています。
 
 
  2014年4月17日 (木) 15時50分29秒
[名前] :   I.N.
[URL] :   
[コメント] :   ドライバ側で重複使用の確認がちゃんとできてないのでしょうかね...

>停止するのはピンの接続をした時なので、それより前に判定ができれば止まらなくなるとは思います。

同じことを考えて,いくつか試してはみたのですがうまくいきませんでした.いい方法が見つかった際にはewclibを改良したいと思います.
  2014年4月11日 (金) 20時35分31秒
[名前] :   MATU
[URL] :   
[コメント] :   別のPCで再現実験したら、全く停止しませんでした。
何がなんやらさっぱりわからなくなりました。
何回も書き込んですみませんでした。
 
 
  2014年4月13日 (日) 15時19分40秒
[名前] :   I.N.
[URL] :   
[コメント] :   MATUさん
環境で特に違いはありますでしょうか?Windowsのバージョンやドライバのバージョンは同じでも結果に違いがあるのでしょうか.もしよろしければ参考までお聞かせください.
  2014年4月9日 (水) 09時26分37秒
[名前] :   MATU
[URL] :   
[コメント] :   カメラが1台の環境で、すでに取り込み中のアプリが起動している時、もう一度取り込みアプリを起動すると、当然ですが、後から起動したアプリは全く取り込みできません。最悪の場合、カメラがハングアップする事もあるように思います。接続しようといているカメラがすでに別のアプリで使用されている事を知る方法はないでしょうか。
 
 
  2014年4月9日 (水) 16時08分33秒
[名前] :   I.N.
[URL] :   
[コメント] :   他のアプリ等でカメラが使用中の場合,EWC_Open()でエラー番号22が返ってきます.この方法ではダメですか?
 
 
  2014年4月10日 (木) 22時53分17秒
[名前] :   MATU
[URL] :   
[コメント] :   確かに22が返ってきますね。EWCLIBの問題ではなさそうです。失礼しました。
 
 
  2014年4月11日 (金) 20時12分51秒
[名前] :   MATU
[URL] :   
[コメント] :   特定の条件で100%停止する事がわかりました。キャプチャソフトを起動しておきます。その後別のキャプチャソフトを起動すると先に起動して安定動作しているソフトが停止します。ただし、先に起動したソフトはEWCLIBを多少改造しているので、それが原因かもしれません。後から起動するソフトは無改造のシンプルなソフトです。
特定の条件ですがMicrosoftのHD-5000というカメラで、解像度を1280x800にて動作させている場合だけ発生します。カメラはこの解像度だけYUY2で動作しています。後から起動したソフトのピンの接続という行で先に起動したソフトが停止します。安定動作中のソフトはEWC_IsCaptured()で確認して画像があれば表示、そうでないときSleep(1);を繰り返しています。
EWCLIBの改造は解像度が選択できるようにしただけなので、安定動作中はおそらく関係ないと思います。
EWCLIBは2.1をベースにしてます。
  2014年3月31日 (月) 18時21分31秒
[名前] :   MATU
[URL] :   
[コメント] :   CPUの使用率について、先ほど投稿しましたが、内容についてはあまり正しくありませんでした。読み飛ばしてください。私の要望はCPUの使用率を下げたい。という事です。RunとStopを使うとかなりCPU使用率は下がるのですが、Run直後の画像が安定しません。通常は1秒に1枚程度の取り込みをしていて、イベントの発生で最高の取り込み速度にし、またしばらくするとFPSを落とす事を考えています。このゆっくりした取り込み時のCPU使用率をできるだけ下げたいのですが、何か良い方法はありませんか。カメラに設定するFPSを落としてもあまりCPU使用率は下がりませんでした。
 
 
  2014年4月8日 (火) 11時25分21秒
[名前] :   I.N.
[URL] :   
[コメント] :   MATUさん
画像取得しないときのCPU使用率を下げる方法ですが,私も今のところ分かりません.もう少し調べてみようと思います.
少し試してみたことは,Stop()/Run()ではなくPause()/Run()です.Pause()はEWCLIBにはまだないですが,EWC_Stop()の中身をPause()にしただけのもので試しました.ただこちらでも取得画像の内容が乱れている状況です.
 
 
  2014年4月8日 (火) 17時31分24秒
[名前] :   I.N.
[URL] :   
[コメント] :   Pause/Run+αで割と簡単に実現できそうです.現在,CPU使用率低減を目的としたEWC_OneShot()を作っているところです.近いうちにver.2.4を公開したいと思います.
 
 
  2014年4月9日 (水) 09時20分41秒
[名前] :   MATU
[URL] :   
[コメント] :   作者と直接コンタクトが取れるのは大変うれしいですね。
よろしくお願いします。
  2014年3月31日 (月) 13時21分50秒
[名前] :   MATU
[URL] :   
[コメント] :   C++Builder6.0でewclib.hを使用しています。
色々試してewclib.hだけ成功しました。大変助かりました。
所で、ewclib.hを使用したアプリケーションのCPUの使用率が高いと感じたのでプロファイルをとってみました。
その結果そのアプリケーションのCPU使用の75%をRtlInitializeExeptionChain、23%をPeekMesageWが占めていました。これらは画像取り込みの本質とは関係が無いと思います。C++Builder6にはプロファイラが付属しないのでLTProfというアプリを使っての結果です。
他の作者のアプリも測定してみましたが同様の結果でした。ewclib.hの問題というよりDirectShow関係の気もしますが、私にはわからないので取りあえず投稿します。
もし、CPUの使用率が下がると大変助かります。
  2014年2月21日 (金) 12時48分14秒
[名前] :   M.T.
[URL] :   
[コメント] :   EWCLibにはお世話になっております。

さて、分割コンパイル時の扱いについてです。
ヘッダーファイルに関数の実体が定義されているので、複数ファイルから読みだすと関数の再定義のエラーに悩まされます。
hとcppに分けたパッケージがあると非常にありがたいのですが。(自分で作成すればよいだけなのですが)


以上、よろしくお願いいたします。
 
 
  2014年2月24日 (月) 11時35分05秒
[名前] :   I.N.
[URL] :   
[コメント] :   M.T. さん
使ってくださってありがとうございます.
そうですね,分割コンパイルの場合はヘッダファイルと本体が別々のものが必要ですが,あいにく私は用意しておらず,また,面倒なので作る予定もない状況です.
ちなみに私は,複数ソースからなるプロジェクトでは,関連ソースはメインのソース中で全部インクルードするという邪道なプログラミングスタイルのため,関数本体を詰め込んだewclib.hでも困らないのです.すみません.
  2014年2月6日 (木) 13時35分29秒
[名前] :   I.N.
[URL] :   
[コメント] :   KATSUYANさん
私もLifeCam Studio (for Business)を入手してEWCLIB 2.3で試してみました. その結果,Windows UpdateによりインストールされたアプリMicrosoft LifeCamを削除すると使えるようになりました. その場合,OS(私の場合,Windows 7)の標準ドライバが動作する状態になりました.参考になれば幸いです.
 
 
  2014年2月7日 (金) 20時18分31秒
[名前] :   KATSUYAN
[URL] :   
[コメント] :   I.Nさんへ
こちらと同様の環境を整えて頂いてのテストと改善方法の
アドバイスを有難う御座います。

同じ環境にしてサンプルプログラムを動かしたら、綺麗なHD画質が表示されました。
お陰様で、やっと泥沼から這い出ることが出来ました。
どうも有難う御座います。

デバイスドライバはブラックボックスなので手が出ません。

HD画質では30fpsが出ないので、駒飛びの無い動画を
求めて、もう少し頑張ります。

Q2F-0008はC920のような、外部コントロール機能がないので、
取り込み再生ロジックのみの見直しになりますが、
ヒント等がありましたら、宜しくお願いします。
 
 
  2014年2月8日 (土) 01時38分49秒
[名前] :   I.N.
[URL] :   
[コメント] :   進展があったようで何よりです.おめでとうございます.
30fps出るかどうかはPCのスペックによるかもしれません.私のPCはそれなりに高性能(i5-4670K)なので,C920とLifeCam Studioの2台同時動作で,両方とも1080,30fpsが出ていますが,CPU使用率は90%くらいに達しています.あと,カメラプロパティの露光(露出)時間の設定値が原因でフレームレート低下を招いている場合があります.
外部コントロールと言えるか分かりませんが,EWCLIBサンプル「各種設定の変更を行う例」のようにしたら動作させながらカメラ設定の変更はできると思います.
 
 
  2014年2月15日 (土) 20時48分49秒
[名前] :   KATSUYAN
[URL] :   
[コメント] :   I.Nさんのアドバイスで、
サンプルプログラムの「各種設定変更を行う」を
使用して、あれこれ試しているうちに1920x1080にて30fpsが出ました。

FOCUSを弄っているだけでは変化が見られなかったのに???
どこの設定が効果があったのか特定できていませんが被写体が明るければ
30fpsが安定して取り込めています。
暗くなると、fps値は一桁まで落ちてきますが、泥沼から抜け出せました。

どうも有難う御座いました。
 
 
  2014年2月15日 (土) 20時49分42秒
[名前] :   KATSUYAN
[URL] :   
[コメント] :   I.Nさんへ

そこで気を良くして「300フレーム(10秒)遅れた映像を表示する」の
サンプルをプログラムを動かそうとすると、スタック領域に納まらないので
「error c2148:配列サイズは0x7fffffffバイトをまで」との制限に蹴られます。

C++ なので、new,deleteで動的にメモリを確保してFRAMESとWX*WYの擬似的な
二次元配列を作り、サンプルソースの数箇所の修正しても100フレーム分まで
しか確保できず、配列での確保と同様に、それ以上は0x7fffffffでerrorです。

Webを覗くと malloc,free ならば、ヒープ領域に確保できるとのことですが、
通常のコードではヒープ領域に確保してくれません。

mallocで32ビットを超えるメモリ操作をするには、何か特別な記述があるのでしょうか?
EWCLIBの質問ではなくて、WindowsのOSになるのですが、I.Nさんに甘えての
質問ですが分かるようでいたら、ご教授願います。

こちらの環境は
WIndows 7 Home Premium + sp1 64bitOS
i7-3770K 3.50GHz 16GB
VS2013 EE + EWCLIB 2.3 + ESPLIB 7.8です。

テスト用のソースは別に書き込みます。
 
 
  2014年2月15日 (土) 23時38分26秒
[名前] :   KATSUYAN
[URL] :   
[コメント] :   I.Nさんへ

今、リンカオプションに64ビットのアドレス空間を利用できる/LAAを見つけました。

設定してコンパイルしたら、いとも簡単に0x8000000を越えた
領域に確保できました。
これで、HD画質のカメラからのキャピュチャー準備が整ったのでアプリ開発が楽しくなります。

ゲストブックを散らかして申し訳ありませんでした。
また泥沼に嵌ったときは、宜しくお願いします。
 
 
  2014年2月17日 (月) 14時54分42秒
[名前] :   I.N.
[URL] :   
[コメント] :   KATSUYANさん
そのコンパイルオプションは私も知りませんでしたのでまた何かの際には参考にさせていただきます.
いろいろ報告ありがとうございました.
  2014年1月23日 (木) 22時42分58秒
[名前] :   KATSUYAN
[URL] :   
[コメント] :   早速の返信を有難う御座います。

フォーマットを取得して表示するサンプルソースでは当該カメラの24種類ある
フォーマットのデータから、int s= 0; を0から23までを試しましたが
0と12の640x480でYUY2とRGB24以外は再生出来ませんでした。

一部のフォーマットには画面に何やら表示されるもありましたが、バックカラーの
画面でエラーとなります。

Logicool HD Pro Webcam C920は、HD画質にするとfpsが落ちると聞いているので
fpsがキッチリ出るよと聞いたLifeCam Studio にしてみました。

HD画質でも30fpsが出ないと動画になりませんので、もう少し頑張ってみます。

EVFLIBは取り込んだ動画データを加工するときに勉強させて頂きます。

何かヒントが見つかりましたら、宜しくお願いします。
 
 
  2014年1月25日 (土) 00時40分18秒
[名前] :   I.N.
[URL] :   
[コメント] :   その後,Webcam C920ではフレームレートの改善が見られました.
EWCLIB2.2の中で,
vh->AvgTimePerFrame= (LONGLONG)floor((10000000.0/ewc_s[num].fps+0.5));
の下に,次の1行を追加しました.
ewc_s[num].pmt->subtype= MEDIASUBTYPE_MJPG;
//ewc_s[num].pmt->subtype= MEDIASUBTYPE_H264;
//ewc_s[num].pmt->subtype= MEDIASUBTYPE_YUY2;
すると,1920x1080で5fpsだったのが15fpsくらいになりました.他のカメラでも有効かもしれませんので試してみてください.
 
 
  2014年1月25日 (土) 01時10分17秒
[名前] :   I.N.
[URL] :   
[コメント] :   上の補足です.
 カメラ出力ピンはMJPGあるいはH264に設定し,サンプルグラバの設定はRGB32やRGB24を使うことで,パフォーマンスが向上したようです.
 30fpsにならなかったのは単に露出設定の問題でした.露出設定を少し暗めに設定すると1920x1080の30fps動作を確認できました.
  2014年1月22日 (水) 23時47分24秒
[名前] :   KATSUYAN
[URL] :   
[コメント] :   はじめまして、WEBカメラのキャプチャーにEWCLIBを便利に使わせていただいています。

どうも有難う御座います。

今、HD画質のWEBカメラでEWCLIBを使って1920x1080P 30fpsで動画表示しようとしていますが、カメラから画像を取り込む事ができません。

解決方法が分かれば教えて頂きたいのですが、、、

サンプルソースのEWC_GetFormat()で、20:1920x1080(24)333333 30.000030[fps] RGB24と表示されています。

サンプルソースでキャプチャー出来るのは、640x480(24)のRGBだけのようです。

使用しているカメラはMicroSoft LifeCam Studio Q2F-00008です。
下記のMatchanさんの自己解決した方法が理解できなくて手詰まり状態です。

1920x1080iと1920x1080Pの対応方法が異なるならば、その方法も伝授いただけると助かります。

こちらの環境はWIndows 7 Home Premium + VS2013 EE
+ EWCLIB 2.2 + ESPLIB 7.8です。

ご伝授を宜しくお願いします。
 
 
  2014年1月23日 (木) 10時36分16秒
[名前] :   I.N.
[URL] :   
[コメント] :   KATSUYANさん
動作報告ありがとうござます.
EWCLIB2.2のサンプルソースの中では,
int s= 0; //1番目のフォーマットを選択
にある値0を変えると,別のフォーマットも試せますが,それを変えるだけではダメだったんですね.
うーん.同じカメラがなく,すぐには理由が分かりません.すみません.

ちなみに,Qcam Pro 4000では,EWC_GetFormat()の取得で1280x960が表示されますが,それは静止画用であって動画取得には使えませんでした.よって,EWC_GetFormat()で出てきたものの一部は使えない場合もあります.ですが,LifeCam Studioだとそんなことはないはずですよね.Logicool HD Pro Webcam C920では,
16: 1920x1080(16) 5.0fps YUY2
等の大きなサイズでも動作したのですから.

関係ないかもしれませんが,私のPCにはPremier Elementsが入っています.もしかすると,そのようなソフトがカメラとサンプルグラバ間に適切な中間変換フィルタを提供しているかもしれません.EVFLIBで動作に貢献したコーデックパックとして,CCCP(Combined Community Codec Pack)やK-Lite Codec Packがありました.そういったものを試すのはいかがでしょうか.
 
 
  2014年1月23日 (木) 10時41分01秒
[名前] :   I.N.
[URL] :   
[コメント] :   あと,画像サイズはそのままで,フレームレートを下げるのはどうでしょうか.
 
 
  2014年1月25日 (土) 23時38分16秒
[名前] :   KATSUYAN
[URL] :   
[コメント] :   1行追加のヒントを有難う御座います。

その後、デフォルトのMEDIASUBTYPE_RGB32を

#define EWC_TYPE MEDIASUBTYPE_RGB24に変更したら、

20:1920x1080(24)のにおいて、モニター画面の
上部に縦横に5枚小さく見えるようになりました。

ヒントを戴いた、EWCLIB2.2のMJPGの変更をしましたが
変化は見られません。
このカメラはYUY2とRGB24にしか対応していないようです。

画面の上部に小さな画像が横に5枚分出てきたので、
もう一頑張りしてみます。
 
 
  2014年1月26日 (日) 01時08分57秒
[名前] :   I.N.
[URL] :   
[コメント] :   どうやらもうちょっとのようですね.
RGB24で取得した画像データを,RGB32フォーマットの画像ウィンドウで表示する場合は変換が必要になりますが,この場合,
EWC_GetImage(0,ESP_VramPtr[0]);
のところを
EWC_GetImage(0,img);
EWC_Cnv24to32(ESP_VramPtr[0],img,1920*1080);
のようにしたりします.なお,imgはグローバル変数
unsigned char img[1920*1080*3];
をどこかに宣言しておきます.
  2014年1月3日 (金) 02時56分27秒
[名前] :   Matchan
[URL] :   
[コメント] :   こんばんは

最近EWClibを使って画像処理の勉強を始めました。
正直、画像処理自体のプログラミングよりもwindow操作やらに割く時間の方が多く、Easy思想には深く共感しています。

さて、動画処理のプログラム(DirectShowでキャプチャしてOpenCVに渡す)を、HD信号対応にしたいと思い、BlackMagicDesign社のDeckLinkシリーズを入手して、EWClibでキャプチャできないかと試行錯誤しています。

メーカー公開のDirectshowSDKを見ていると、どうやら入力信号のフォーマットがRGBではなく、
1920x1080i 29.97fps UYUV
となっているのですが、
#define EWC_TYPE MEDIASUBTYPE_UYVY
として、さらにUYVY- RGB24の変換をどこかでやってやらねばならないのではと考えています。

例えば、「OpenCV&ESPLIBと組み合わせて使用した例」のようなアプリケーションで、上記のような変換をするならば、どのあたりで処理すればベストでしょうか。
よろしければご教授ください。
 
 
  2014年1月9日 (木) 18時30分44秒
[名前] :   Matchan
[URL] :   
[コメント] :   すみません、自己解決したので勝手にRESします。

BlackMagic社のキャプチャカードのシリーズは、DisplayNameが@device:pnpではなく、@device:swとなっていましたので、これを受け入れるように変更して動作することができました。
EWC_TYPEの設定はデフォルトのままでOKでしたが、画素やFPSの設定にかなりシビアで、私の環境では1920x1080、29.97FPSの設定にしなくては駄目でした。

一度動作してしまえば、あとはEWCLibの軽快な使い心地を享受することが出来ます。
こんな便利なツールを公開していただきありがとうございました。
 
 
  2014年1月10日 (金) 01時20分32秒
[名前] :   I.N.
[URL] :   
[コメント] :   Matchanさん
 HD画質のキャプチャについて調べてみようかと思っていた矢先でしたが,早く解決して良かったです.さすがです.
 EWCLIBの方にDisplayName(@device:sw)の問題も見つかったので,また次回verで改良できたらやってみます.
使用できた旨の報告どうもありがとうございました.
 
 
  2014年1月30日 (木) 00時04分54秒
[名前] :   KATSUYAN
[URL] :   
[コメント] :   その後、画像サイズやfps、フォーマットを変更して
チェックすると

640x480 RGB32を基本に横は640の倍数で1280と1920、
縦は480の倍数720と
半分の240で綺麗な画像が見えますが色は単色の赤だったりします。

肝心要の1920x1080は、RGB32やRGB24の変換をいれても
緑色の荒れた画面です。
カメラの前でが手をかざすとモニタ画面には反応があります。

PCが64bitなので画像バッファとVRAMのアドレス間の読み書きが32bitと
アンマッチなのでは?と思いますが如何でしょうか?

CPUが8086時代の16bitはアドレスが連続していなくて、上位、下位と段済みして
いたので、データが連続していませんでした。

これと同じようにカメラから画像バッファに格納されていると
32bitと同じように読み出すとR領域のデータだけ拾ってくるのでは無いでしょうか?

かと言って、64bit→32bitの読み出し手順は不明ですが、もう少し頑張ってみます。

挫折したら、C920にカメラを変えますので、その節はHD画質30fpsのサンプル
プログラムを公開をお願いします。
  2013年12月17日 (火) 16時23分24秒
[名前] :   Kabachan
[URL] :   
[コメント] :   EWCライブラリ ありがたく使わせていただいています。

現在USBカメラを2台接続し、
 EWC_Open(0,640,480,1);
 EWC_Open(1,640,480,1);
という具合に2台使おうとすると、2台目で戻り値がS_NGになり、ewc_s[1].errcode=22がセットされます。
一台ずつだとどちらも使用できます。
カメラはBAFFALOのBSW13K05Hが2台です。
何か対応策はないでしょうか?
 
 
  2013年12月18日 (水) 10時22分58秒
[名前] :   I.N.
[URL] :   
[コメント] :   Kabachanさん
使ってくださってありがとうございます.
過去(2008/6/27)の書き込みにも似た様な話題がありました.
http://www.geocities.jp/in_subaru/gb_20101027.htm
考えられる原因としては,(1)ドライバによる台数制限,(2)USBの帯域不足による失敗,が考えられます.
(2)の場合,解像度を320x240で試してみることで分かりそうです.
(1)の場合は,(残念ながら)カメラを変えるか,(もしあれば)別のドライバを試してみる,という方法があるかと思います.
 
 
  2013年12月18日 (水) 14時25分36秒
[名前] :   Kabachan
[URL] :   
[コメント] :   素早い回答ありがとうございます。

どうやら、今回試しているUSBカメラでは、同じUSBルートハブ上のUSBカメラはカメラとして認識はするけど同時に使用できないようですね。

デバイスマネージャーを見ながら別のルートハブになる接続箇所を探して試したらうまくいきました。

ちなみにOpenCVでも同じ事象なので、このカメラのドライバの仕様かもしれませんね・・・

EWCLib側でどうにかなるとありがたいですが・・・

あと、EWC_open時に画像サイズ(0,0)を指定したら、デバイスの設定値0番の画像サイズを使うような機能とか、カメラで設定可能な画像サイズを取得する機能(
ewc_sから引っ張り出すのがめんどくさいので)とかあると便利だと思います。
 
 
  2013年12月18日 (水) 18時03分48秒
[名前] :   I.N.
[URL] :   
[コメント] :   おお,ドライバ制約のそんな回避方法があったんですね.憶えておきます.
改良点の提案もありがとうございます.次回の参考にさせていただきます.
 
 
  2013年12月19日 (木) 09時03分31秒
[名前] :   Kabachan
[URL] :   
[コメント] :   ありがとうございます

MicrosoftSDK付属サンプルのAmcapでは、複数台の
カメラが認識されているので、きっと何か回避方法が
あると思いますが、私では解析できません(;_;。

作者様
次回バージョンUp時に対応してくれることを期待して待ってます。
 
 
  2013年12月26日 (木) 11時03分58秒
[名前] :   I.N.
[URL] :   
[コメント] :   Kabachanさん
手元にある同じようなカメラ(Buffalo BSW13K08H,3台)を使ってPC(Pentium4 3GHz, ASUS P4P800D-E Deluxe,Windows XP)環境でテストしてみました.また,1つのUSBハブ(ELECOM U2H-SS4B)の下に3台ぶら下げた条件も試しました.あと別のWindows 7のPCでも試してみました.
結果ですが,やはり解像度が小さいほど複数カメラでの成功率が向上しました.USBハブやポートは私の環境の場合,関係なかったです.EWCLIB内部ではいつでも3台認識するのですが,だめなときはMediaControlのRun()でエラー(22)でした.このエラーはEWCLIB側での対応は難しいです.
解像度354x288以下→3台OK
解像度640x480→2台OK
解像度1280x1024→1台OK(ただし2台しか接続しない場合,2台でもOK)
別のUSBポートに差したらOKだったのもUSBバスの帯域が確保できたので成功したと思われます.
複数カメラや高解像度を狙う場合,それに適したカメラを使い,また,USBまわりの性能が良いハードウェアも必要なんだと思います.
  2013年10月29日 (火) 10時27分16秒
[名前] :   Naohiro19
[URL] :   
[コメント] :   ttp://www.geocities.jp/in_subaru/esplib/index.html

「※1 Windows SDK を別途インストールする必要があります.」
という記述ですがこれは「Express Editon」のみです。
「Visual C++ 2005 Professional」や「Visual C++ 2005 Standerd」は標準でSDKやMFCライブラリが付属しているのでWindows SDKをインストールする必要はありません。

何か勘違いしていないでしょうか?
 
 
  2013年10月31日 (木) 15時30分13秒
[名前] :   I.N.
[URL] :   
[コメント] :   Naohiro19さん
あれれ本当ですね,ESPLIB 7.3から何故か間違ったままでした.ウェブページの方は修正しました.ご指摘感謝いたします.
  2013年1月30日 (水) 19時27分49秒
[名前] :   nok
[URL] :   
[コメント] :   いつもお世話になっております。

EWCLIBを使ってカメラを複数9台同時に表示したいです。8台までは問題ないのですが、9台目からエラーになります。EWC_NCAMMAX を9に変更しても、errcode=7で失敗します。調べてみるとBindToObjectでエラーになっているみたいで、戻り値がCLASS_E_CLASSNOTAVAILABLE(0x80040111)でIBaseFilterのクラスポインタが取得できません。
これはWindows側での制限なのでしょうか?
宜しくお願い致します。
 
 
  2013年2月1日 (金) 12時29分19秒
[名前] :   I.N.
[URL] :   
[コメント] :   nokさん
 EWCLIB使ってくださってどうもありがとうございます.
 9台ですか!すごいですね.しかも8台まで認識することを初めて知りました.率直に言って,作者の私は3台くらいまでしか試してません.EWCLIBにおける8台という当初の制限は私が適当に決めた数だったと記憶しています.(^_^;
 EWCLIBでEWC_NCAMMAX以外には台数に関わる箇所はないと思うので,予想としては,WindowsかカメラドライバかDirectShowライブラリのどこかの制限である可能性はあります.すみませんが,これ以上のことは分かりません.(ここをご覧の方でどなたか分かる人おられませんか)
 
 
  2013年2月4日 (月) 16時44分57秒
[名前] :   nok
[URL] :   
[コメント] :   お世話になっております。解決できました。
USBカメラメーカーのドライバを修正してもらったところ対応可能になりました。I.Nさんが8台という制限をかけていたので、DirectShowの仕様だろうと思っていました。ドライバ側でも8台と制限がかかっていたようです。9台でも問題なく動作することを確認できました。お騒がせしました。
 
 
  2013年2月5日 (火) 11時49分53秒
[名前] :   I.N.
[URL] :   
[コメント] :   nokさん
解決したようで何よりです.対応してくれるメーカーでよかったですね.9台でも動くということを知ることができましたので,この度のご報告どうもありがとうございました.
  2012年6月15日 (金) 00時57分12秒
[名前] :   fuji
[URL] :   
[コメント] :   いつもお世話になっております。
ご連絡ありがとうございます。

はい、了解しました。
現在、インプットボックスは複数のパタンを
ボタンボックスを押すことで切り替えて使うように
試行錯誤しております。

ボタンボックスも、切り替えボタンにより他のボタンの用途を切り替えるようにしております。

また要望ですみませんが、カメラから画像の認識処理で、デバッグのためにキャプチャした動画ファイルを使いたいのですが
静止画だけでなく動画ファイルのロード関数機能もサポートしていただくことはできないでしょうか?
よろしくご検討をお願いします。
 
 
  2012年6月16日 (土) 12時20分21秒
[名前] :   I.N.
[URL] :   
[コメント] :   fujiさん
ご提案ありがとうございます.動画のファイル名と時刻を指定するとその画像が得られるような関数でしょうか.私もちょっと検討したことがあります(EWCLIBの追加機能として).私の知識不足によりMicrosoftのどのライブラリを使ったらいいのか把握できておらず実現できてません.
作るとしたらESPLIBやEWCLIBとは別のライブラリとして作るのがいいかもしれないとも考えるのですが...最近の動画ファイルは形式(CODEC?)も多く,はたしてできるものかどうか自信もなく...
 
 
  2012年6月17日 (日) 10時49分34秒
[名前] :   fuji
[URL] :   
[コメント] :   いつもお世話になっております。
時刻指定までは考えていませんでしたが、
自分で作成した画像処理フィルタのデバッグを
いつも同じ画像条件で評価するのに、リアルタイムのカメラ入力だと評価結果が不安定かなと思った次第です。
すみません、コーデックのことはあまり考えておらず
DIRECTSHOWを利用すれば大抵の動画ファイルを再生できるのかと思っていました。
色々出来てしまうOPENCVだと、その他も頼りすぎてしまう気がしてあまり使いたくないと思っています。
自分でできないのに、希望条件が多くてすみません。
  2012年6月10日 (日) 22時55分37秒
[名前] :   fujii
[URL] :   
[コメント] :   たびたび、お世話になります。
ESPLIBのインプットボックス、ボタンボックスを
利用しようとしていて疑問に思ったことがありましたのでお手数ですが教えていただけますでしょうか。

一つ目は、
 インプットボックス、ボタンボックスを用途別に複数のウインドウで作成したいのですが、テキストウインドウのように、複数作成できないでしょうか?
二つ目は、ボタンボックスをラジオボタンを変更するには、スタイルの変更以外にも必要でしょうか?
よろしくお願いいたします。
 
 
  2012年6月13日 (水) 00時17分51秒
[名前] :   I.N.
[URL] :   
[コメント] :   fujiiさん
1つ目のインプットボックスの複数化,そして,2つ目のボタンボックスのラジオボタン化(あるいは新規にラジオボタンボックス?)ですが,ESPLIBを改造すればできると思います.ですが,いずれも変更箇所は多数になるので,あいにく簡単にはできません.現在のような1つのインプットボックス,1つのボタンボックスしか用意していないのは,Win32 API(Windows)による制限が理由ではなく,単にESPLIBの仕様です.いろいろな種類(例えば,スライドバーで値変更できるものとか)を用意しようとも思いましたが,最低限のものに抑えてESPLIBが複雑にならないことを優先させています.
勝手ながら,ESPLIBはオープンソースなので現在の内容を参考に,改造,機能追加を行ってみてください,とさせていただきます.
  2012年6月1日 (金) 09時11分01秒
[名前] :   fuji
[URL] :   
[コメント] :   お世話になります。
最近、VC2010でESPLIBを利用させていただいております。

基本的な質問ですが、実行する際、ヘルプには ”「デバッグ」→「デバッグなしで開始」で実行する.”とありますが、これを守らず”デバッグ開始”すると、ウインドウをクリックしたりすると、アクセス違反が発生します。
この現象が発生することと関係しておりますでしょうかか?
 
 
  2012年6月5日 (火) 11時58分57秒
[名前] :   I.N.
[URL] :   
[コメント] :   fujiさん
ESPLIBを使って下さりありがとうございます.
VC++2010を入れたPCが手元にないのでしばらくお待ちいただけますでしょうか.VC++2010自体は持っています.私の頭で考えただけでは原因がちょっと分かりません.普段私が使っているVC++2008ではそれが起きないような感じです.
 
 
  2012年6月5日 (火) 22時50分23秒
[名前] :   fuji
[URL] :   
[コメント] :   よろしくお願いします。
こちらは、WIN7,64bit

サンプルは以下です。

*****************************************
//EWCLIBのサンプル(ESPLIB併用) by I.N.
//画像データを取得して表示するだけ
//2010.5.13

#include
#include
#define WX 640
#define WY 480

void ESP_Ready(void)
{
ESP_CreateImage(0,Camera,0,0,WX,WY,100);
ESP_OpenTextWindow(0,86,512,439,135);
ESP_Printf(Startをクリックしてください.\n);
 :
 :
ESP_Update_(0);
ESP_Printf(*);
}
}
EWC_Close(0);
ESP_Printf(Stopped\n);
}

void ESP_Finish(void)
{
}
***************************************

で、VC2008EXPRESSでも発生しました。
esplib.hの1856行
 return DefWindowProc(hwnd,message,wParam,lParam);

sample3.exe の 0x6c7b85a8 で初回の例外が発生しました: 0xC0000005: 場所 0xfeeefeee を読み込み中にアクセス違反が発生しました。
のメッセージが発生しているようでした。

よろしくお願いします。
 
 
  2012年6月8日 (金) 17時41分23秒
[名前] :   I.N.
[URL] :   
[コメント] :   fujiさん
お待たせしました.下記環境で試してみましたが,問題が起きませんでした.原因はWinの64bitかもしれません.(あいにく手近にWin(64bit)がなく,推測になります.すみません.)

PC:SONY VAIO type T(VGN-TT53FB)
OS: Windows 7 Professional(32bit)
Compiler: Visual C++ 2010 Professional(Win32 Application)
Library: ESPLIB 7.6, EWCLIB 2.1
Source list:ESPLIBを併用した例(1)のサンプル
Camera: 本体内蔵カメラおよびLogicool Qcam Ultra Vision
実行モード:Debug(デバッグ開始およびデバッグなしで開始),Release(デバッグ開始およびデバッグなしで開始)
 
 
  2012年6月9日 (土) 00時33分46秒
[名前] :   fuji
[URL] :   
[コメント] :   ご回答ありがとうございます。

こちらでも、他人のXPのPCでは起きないことが
わかったのでWIN7&64bitか、自分のPC固有の問題と思います。
デバッグなしで実行で使うように致します。
ありがとうございました。
  2012年3月7日 (水) 09時17分31秒
[名前] :   さすけ
[URL] :   
[コメント] :   ナイトライダーLED ver.2.5を使用し、PICの勉強をさせて頂いてます。
とても参考になります。ありがとうございます。

VDDが5Vでも、パワーオンで自動起動しないのですが、考えられる原因はありますか?
リセットICなどでMCLR端子へ強制的にリセット信号を入力しようかとも考えていまが、出来れば部品を増やさずに対策ができれば嬉しいです。
 
 
  2012年3月14日 (水) 18時23分43秒
[名前] :   
[URL] :   
[コメント] :   さすけさん
参考にしてくださりありがとうございます.
パワーオンリセットの問題は,私もいろいろ
原因を考えて試してみたのですが,
結局リセットスイッチになりました.
あとはMCLRピンに何か回路(ICあるいはRC)
を追加するしかないのかなと思っています.
私の力不足でこんな回答になりすみません.
 
 
  2012年3月15日 (木) 23時06分28秒
[名前] :   
[URL] :   
[コメント] :   管理人様
お返事ありがとうございます。
最近購入したSUVの、セキュリティスキャナとして作成しています。
当初、残光無しのPIC出力を、CRを入れたトランジスタのベースへ入力し残光を実験しましたが、消費電流の多さから断念しました。(車のバッテリーが><)

試行錯誤の結果としてのリセットSW、了解しました。
確実起動の為に、リセットICを入手したいと思います。

P.S.
8ヶのLED、ホントに良い感じの残光で光っています。
消費電流も理想的です。
ありがとうございました。
  2012年2月21日 (火) 04時17分08秒
[名前] :   mizuno
[URL] :   
[コメント] :   EWCLIBを大変便利に使わせていただいています、ありがとうございます。
当方使用時にメモリリークが検知されましたので、
開放されるように改造しました旨 連絡差し上げます。

//ewclib.h(ver 2.0)
//メモリ解放
void ewc_freememory(int num)
{
ewc_release(ewc_s[num].pMediaEvent);
ewc_release(ewc_s[num].pMediaControl);
ewc_release(ewc_s[num].pCamCtl);
ewc_release(ewc_s[num].pVPAmp);
ewc_release(ewc_s[num].pGrab);
ewc_release(ewc_s[num].pF);
ewc_release(ewc_s[num].pBuilder);
ewc_release(ewc_s[num].pCap);
// ここをコメントアウト
//ewc_release(ewc_pSampleGrabberCB[num]);
if(ewc_s[num].buffer){
delete[] ewc_s[num].buffer;
ewc_s[num].buffer=0;
}
ewc_release(ewc_s[num].pGraph);

// 以下を追加
if( ewc_pSampleGrabberCB[num] )
{
delete ewc_pSampleGrabberCB[num];
ewc_pSampleGrabberCB[num] = 0;
}
}
 
 
  2012年2月28日 (火) 18時13分27秒
[名前] :   I.N.
[URL] :   
[コメント] :   mizunoさん
使ってくださりありがとうございます.また,不具合のご指摘と修正案ありがとうございました.修正版を近々EWCLIB 2.1として公開したいと思います.
(昔のバージョンでもゲストブックで同様の指摘をいただいておりました.(汗))
  2010年10月22日 (金) 17時23分48秒
[名前] :   しょうの
[URL] :   
[コメント] :   EWCLIBを便利に使わせて頂いています。

今回、特定のPCで動作しないことがあったのでお知恵を拝借できますでしょうか。

VC6、EWCLIB1.2、カメラはロジクールのOrbit AFなのですが、EWC_Open()を実行した時にerror10が返ってきます。
つまり、FindInterface()が失敗しているようなのですが、何か考えられることはありますでしょうか。

現状ではただ1台だけのPCでの問題であるため、PC依存かと思いますが、何らかの環境・設定等で引っかかる可能性がありますか?
 
 
  2010年10月23日 (土) 18時08分50秒
[名前] :   I.N.
[URL] :   
[コメント] :   しょうのさん
こんにちは.
EWCLIBを使ってくださってどうもありがとうございます. そのエラー番号についてですが,
すぐに思い当たるような原因は今までの私の経験では出てきません.
特定のPC1台だけで発生しているようですので,もしよろしければ,使用PC/OSの型番や,そのPCだけが特徴とする機能などの情報を教えて下されば,もう少し原因の推測ができる気がします.
 
 
  2010年10月23日 (土) 23時03分41秒
[名前] :   しょうの
[URL] :   
[コメント] :   お返事ありがとうございます。

使用PCは、SONY VAIO VGN-AS33B です。
スペックはCerelonM1.5GB, メモリは524MBで、特徴としてはその当時はやったAV PCということでしょうか。テレビが見れて録画できるものです。

なので、それ系の機能がなんらかの障害を起こしているのかな?とも思っています。
あんまりそれらしい常駐ソフトもないのですがねぇ。
 
 
  2010年10月27日 (水) 10時22分01秒
[名前] :   I.N.
[URL] :   
[コメント] :   しょうのさん,こんにちは.
VGN-AS33Bのテレビ録画機能(MPEGハードウェア
エンコーダーボード)が原因かもしれません.EWCLIBはビデオ入力系デバイスをすべて検出(列挙)して使おうとする仕様になっています.その検出過程ではカメラ以外の(EWCLIBが対応できない)特殊なデバイスも引っかかることがあります.本当にこれが原因であるかどうかを確かめるには,デバイスマネージャ(デバイスの使用状況)で,テレビ録画機能のデバイスを見つけて,「このデバイスを使わない(無効)」と一時的にやってみると,結果に違いが出るかもしれません.
 
 
  2010年10月27日 (水) 11時52分40秒
[名前] :   しょうの
[URL] :   
[コメント] :   お返事ありがとうございます。

こちらでもいろいろ試行錯誤した結果、解決に至りました。
原因はI.N.様のおっしゃる通り、MPEGハードウェアエンコードでした。

あらゆるドライバのアップデート、DirectXのアップデートその他諸々のことを行ってみた後、「ミカエル」というウェブカメラをキャプチャーするフリーウェアを落として現象確認したところ、「SMRT capture」という見慣れないデバイスを認識したので、その方面から攻めてみました。
かなり遠回りしてしまいましたが、I.N.様のお返事ですっきりしました。

時間ができたらキャプチャビルダのループの部分を工夫して、動作しないデバイスをスキップするようにできないか検討してみます。

ありがとうございました。
 
 
  2010年10月29日 (金) 18時22分44秒
[名前] :   I.N.
[URL] :   
[コメント] :   EWCLIB2.0からは個別にカメラorデバイスをオープンできるように仕様変更していますが,以前のEWCLIBでは全てのデバイスを一度にオープンしようとする仕様です.すみませんが,旧バージョンのEWCLIBの場合は,適当に改造してみてください.
  
▲このページのトップ  

Yahoo!ジオシティーズ