以前までXPを使用しVisual C++ 2008にopencv1.0を導入し、USB接続のwebカメラから
画像をキャプチャしリアルタイムでの画像処理などのプログラミングしていたのですが、
このたびOSをXP(32bit) からwindows7(64bit)に変え、前使っていた環境つまり
Visual C++ 2008
opencv1.0
で設定したところ、コンパイルは正常にでき、普通にpng画像などを取り込むような画像処理は可能なのですが、webカメラからの画像が読み込めず、真っ黒な画像が表示されてしまいました。
ちなみに実行したプログラムはXPの時には正常に作動していたものと同じものを実行しています。
また、webカメラ自体はamcapなどのソフトを使い動作させることはできます。
自分なりに考えた問題点は、
プログラムに問題がある、またはvisualC++を2010にする、opencvを2.2などの最新版に
更新するなどがあげられますが、
この場合なにが原因として考えられるのでしょうか?
その点アドバイスいただけたらうれしく思います。
よろしくお願いします。
実行したプログラムは以下の通りです(取り込んだ画像を表示しているだけの、シンプルなプログラムです。直すところなどありましたら教えてください。)
***************************************************
#include <cv.h>
#include <highgui.h>
#pragma comment(lib,"cv.lib")
#pragma comment(lib,"cxcore.lib")
#pragma comment(lib,"highgui.lib")
int main(int argc, char** argv){
int key;
CvCapture* capture;
capture=cvCreateCameraCapture(-1);
IplImage *frameImg=cvQueryFrame(capture);
cvNamedWindow("Capture",CV_WINDOW_AUTOSIZE);
while(1){
cvShowImage("Capture",frameImg);
key = cvWaitKey(1);
if(key=='q')
break;
}
cvReleaseCapture(&capture);
cvDestroyWindow("Capture");
return 0;
}
****************************************************
No.1ベストアンサー
- 回答日時:
一度OpenCV1.0系のソースからビルドされてみてはいかがでしょうか?
キャプチャ関数からの戻り値をちゃんと確認しましたか?
私はOpenCVのWebカメラキャプチャー機能は使わずにDirectShowでキャプチャしてOpenCVに渡すような処理を好んで使います。
あと、OpenCV2.0以降からライセンスが厳しくなっていませんでしたか? 並列処理ライブラリがOpenMPから別のものになったことで商用で使いづらくなっていたような気がします。 まぁそういう用途で使わないよということなら問題ありませんが。
早速の回答ありがとうございました。
DirectShowを調べ導入しようと思ったのですが、自分には難しかったです。
原因がわからないままopencv2.0を調べながら導入したところ、何とかwebカメラからの画像をキャプチャすることができました。
opencv1.0では対応していないようでした。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Macターミナルで実行中のプログ...
-
sendkeysにてALT+CTRL+INSERTを...
-
C言語で途中までしか、プログラ...
-
他の実行ファイルを実行するプ...
-
C言語でプログラムを再起動
-
他のPC上にあるexeを、そのP...
-
いきなり、count++; とありま...
-
実行時エラー429
-
popen関数について
-
VBAで外部プログラムを非表示で...
-
C# 変数の動的な再定義
-
RPG パラメーターについて
-
UNIXで自作プログラムのメモリ...
-
Visual Basic 6.0でWin32APIを...
-
PCIデバイスのコンフィグレーシ...
-
システム資源とは?
-
ゲームプログラマーの就職用提...
-
プログラムカウンタのハードウ...
-
アクセス[ファイルを開かずに、...
-
JavaScriptでレースゲームを作...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Macターミナルで実行中のプログ...
-
sendkeysにてALT+CTRL+INSERTを...
-
並列計算をしたときのシステム...
-
VBAで外部プログラムを非表示で...
-
プロセス間通信について
-
C言語でプログラムを再起動
-
他のPC上にあるexeを、そのP...
-
Windows10でDOSゲーム
-
C言語でフォルダを開く
-
C言語で途中までしか、プログラ...
-
system関数を使用してsuコマン...
-
アクセス[ファイルを開かずに、...
-
終了してもプログラムが実行し...
-
実行中の実行ファイルの上書き
-
プログラムを走らせる
-
実行時エラー429
-
RPG パラメーターについて
-
MACで動く実行ファイルをWindow...
-
VB上で実行中の無限ループの止め方
-
他の実行ファイルを実行するプ...
おすすめ情報