• 締切済み

IEEE1394カメラからの動画をopencvで処理

IEEE1394カメラからの動画をopencvで処理したいんですが. IEEE1394カメラからの動画ファイルを保存する.→Windowsパソコンにその動画ファイルを移す.→その動画ファイルをWindows上でopencvを使って処理をしたいのですが そもそもこのカメラからできてる動画ファイルがどんな拡張子?とかいうこともよくわかりません. この場合opencv上ではどのように動画ファイルを読み込めばよいのでしょうか? 質問自体が的外れかもわかりませんが,どうぞよろしくお願いいたします.

みんなの回答

  • D9150
  • ベストアンサー率21% (36/167)
回答No.1

双方のマニュアルで仕様嫁。

関連するQ&A

  • opencvによる画像処理。

    opencvによる画像処理。 今opencvを使った画像処理をしているのですが、これって普通のプログラム中に関数みたいな感じで使う事って出来ないのでしょうか? 例えば、Cで車両を制御するプログラムを作ってる場合に、車両が何mm進んだ時点で車両に取り付けたカメラを使って、画像処理を行う。みたいな処理をしたいです。 でもopencvのmain文って、引数が二つあってそれをどう渡せばいいのかよく分かりません。 素人なので分かりずらくて申し訳ありません。

  • opencvでwebカメラを起動

    パソコンとwebカメラで画像を撮影しようとしています。 パソコンでopencvという画像ライブリを使って、 撮影しようと思っています。 opencvで16:9例えば、1280*720とかの画像を撮影することはできますか? 16:9なら1280*720以外でも構いません。 opencvで「cap = cv2.VideoCapture(1)」で画像を撮影するときに、 opencvだとカメラによっては4:3で起動する場合があり、 16:9で起動するものを探しています。 よろしくお願いします。 ※OKWAVEより補足:「エレコム株式会社の製品」についての質問です。

  • OpenCVの画像表示について。

    OpenCVにて画像処理ソフトをつくっています。 VC++で、まず簡単に開くボタンから画像を開き、ピクチャーボックス、またはウィンドウに画像を表示するものを作ろうと思います。 しかし、ソースの中にファイル名を指定することでしか画像を開く方法しか方法がわかりません。 どのようにしてボタンを設置すればよいのでしょうか? また、プロジェクトの種類はWin32だけでしか作れないのでしょうか? OpenCVを使い始めたばかりの者でとても的外れな質問だとは思いますが、どうぞよろしくお願いいたします。

  • 動画処理のライブラリについて

    現在WindowsのVC++で動画ファイル(.avi)に画像処理を行いたいと思っています。 もう少し具体的に述べますと、.aviファイルを読み込み、その映像にエッジ抽出や差分画像抽出などの画像処理を施して、画像処理された新たな.aviファイルを出力するというものです。 しかし、1から画像処理プログラミングを行うほどの知識もなく、どうすれば…と思っていたところ、OpenCVなど画像処理ライブラリというものがあることを知りました。 それを用いて.bmpなどの静止画像のエッジを取ったりというような処理はなんとなくわかったのですが、.aviファイルなどの動画ファイルに対する画像処理の方法がよくわからないのです。 動画というものは静止画の集合なので、動画像処理は静止画像処理を連続的に行えばよいと耳にしたのですが、これは正しいのでしょうか? もし正しいのであれば、.avi動画ファイルにたいして連続的な静止画処理を行い、また.aviファイルを出力するということはOpenCVを用いてできるのでしょうか? また、そういったことが詳しく解説されている書籍や日本語サイトなどがあれば教えていただけませんでしょうか。 素人の質問ではありますが、皆様どうぞよろしくお願いいたします。

  • Opencv画像処理 bmp処理

    常々自分の理解力の無さに呆れるyuki-yutoです。 今回はOpencvで作ったプログラムと別のプロジェクトで作ったプログラムをソースをコピーして一つにしたところ、オバーフロー?してしまうらしくプログラムが実行できません。 二つ別々なら動くので関数の受け渡しが悪いのでしょうか? 今回の処理の目的は Opencvでキャプチャ→bmpで保存→(書いていませんが)for文でRGBの量を求める→一定量のRが検出されればショートカットを起動する というものです。 RGBに関してはfor(i=0;i<width;i++)とかでまわしているソースを何処かで見た気がするのですが、bmp処理は疎いので正直RGBをどうやって出すかまだ良くわかっていません。 widthまでを使っているあたり1pixel毎配列にでも記録させているのでしょうか・・・? #include <stdio.h> #include <Windows.h> //bmp読み込み,ショトカ #include<iostream> #include <C:\OpenCV2.1\include\opencv\cv.h> #include <C:\OpenCV2.1\include\opencv\highgui.h> #ifdef _DEBUG //Debugモードの場合 #pragma comment(lib,"C:\\OpenCV2.1\\lib\\cv210d.lib") #pragma comment(lib,"C:\\OpenCV2.1\\lib\\cxcore210d.lib") #pragma comment(lib,"C:\\OpenCV2.1\\lib\\cvaux210d.lib") #pragma comment(lib,"C:\\OpenCV2.1\\lib\\highgui210d.lib") #else //Releaseモードの場合 #pragma comment(lib,"C:\\OpenCV2.1\\lib\\cv210.lib") #pragma comment(lib,"C:\\OpenCV2.1\\lib\\cxcore210.lib") #pragma comment(lib,"C:\\OpenCV2.1\\lib\\cvaux210.lib") #pragma comment(lib,"C:\\OpenCV2.1\\lib\\highgui210.lib") #endif #include <math.h> #include <stdlib.h> int main(void){ //画像保存用 char str[32];//大きさは多く取っておいたほうが良いかも?640*480対応できるように。 //キー入力用 int key; //カメラの用意 CvCapture *capture; IplImage *frame = NULL; //カメラ画像用 //カメラ・デバイスの先頭ポインタを取得 capture = cvCaptureFromCAM(-1); //カメラ画像のサイズ double height = 240; double width = 320; //カメラ初期化 if(capture == NULL){ //カメラが見つからなかった場合 printf("カメラが見つかりません\n"); return (0); } //カメラ画像を表示するウィンドウの生成 cvSetCaptureProperty(capture, CV_CAP_PROP_FRAME_HEIGHT, height); cvSetCaptureProperty(capture, CV_CAP_PROP_FRAME_WIDTH, width); cvNamedWindow("CaptureFromCamera", CV_WINDOW_AUTOSIZE); //キー入力されたら画像をキャプチャ while(1){ //カメラ画像からフレーム画像を取り込む frame = cvQueryFrame(capture); if(frame == NULL) break; //画像の表示 cvShowImage("CaptureFromCamera", frame); //sキー入力で画像を保存、Escキー入力でループから抜ける key = cvWaitKey(10); if(key == '\x1b') break; else if(key == 's'){ sprintf_s(str, "Capture_Bitmap.bmp"); cvSaveImage(str, frame); } } //ウィンドウの破棄 cvDestroyWindow("CaptureFromCamera"); } //ここからキャプチャしたbmp処理。 int main( int argc, char *argv[] ){ FILE *fp; //ポインタ、読み込み専用 BITMAPFILEHEADER bfh; //ファイルヘッダ BITMAPINFOHEADER bmpinfo; //情報ヘッダ //BMPファイルがあるかどうかチェック if((fp=fopen("Capture_Bitmap.bmp","rb"))==NULL){ printf("ファイルが見つかりません"); exit(1); } //BMPファイルか確認 fread(&bfh, 14, 1, fp); //ファイルヘッダ読み込み,ってかファイルヘッダの1~14を読み込む if(memcmp(&bfh.bfType,"BM",2)) //BMPファイルかチェック、2バイト位置にBMがあるか printf("BMPファイルではありません"); fread(&bmpinfo, 40, 1, fp); //情報ヘッダ読み込み printf("データの大きさは%dMB\n",(bmpinfo.biSizeImage+bmpinfo.biSize)/1000000); //表示サイズ調節 //何色BMPファイルか返却値で判定 switch(bmpinfo.biBitCount){ case 1: printf("2色ビットマップ\n"); break; case 4: printf("16色ビットマップ\n"); break; case 8: printf("256色ビットマップ\n"); break; case 24: printf("1677色ビットマップ\n"); break; case 32: printf("1677色ビットマップ\n"); break; } //ココでRGBを抽出する、確かforを二回bmpの縦と横の最大値まで繰り返し、何か変数に入れるソースを見た気が・・・? printf("インターネット ショートカット を起動します。Enterを押してね"); getchar(); //ショトカ起動文。Windows.hでデスクトップにショートカットを指定。 fclose(fp); rewind(stdin); getchar(); }

  • OpenCvライブラリを使い、C++を用いてウェブカメラを監視カメラみ

    OpenCvライブラリを使い、C++を用いてウェブカメラを監視カメラみたいな役割をさせようとしています。 そこで、1秒ごとに画像をキャプチャし、10秒(10枚)までを指定したフォルダに保存する。 (例)     ファイル名   1秒の画像   file1.bmp 2秒の画像   file2.bmp ・ ・ ・ ・   10秒の画像   file10.bmp と、こんな風に そして、保存していた背景画像と、1~10枚撮った画像を比較していき、違いが出たら、 違いが出た画像だけを別のフォルダに保存するというプログラムを作ろうとしています。 OpenCv,C++初心者なので、うまく伝えられているか分かりませんが、宜しければプログラムを教えてください。

  • ビデオカメラの動画をパソコンに取り込むのに

    ビデオカメラの動画をパソコンに取り込むのに 最近、購入したパソコンにIEEE1394端子が付いていません。 ビデオカメラの動画をパソコンに取り込みたい場合どのようにしたら いいのでしょうか? わかる方、教えてください。

  • 【OpenCV】IplimageをDirectXのテクスチャとして利用する方法

    Webカメラにてキャプチャした動画像を,二値化,アフィン変換等の処理を施し,このイメージをテクスチャとしてポリゴン等に貼り付けてリアルタイム表示するといったことを考えています. キャプチャから画像処理まではOpenCVを利用すると簡単そうなのですが,OpenCVで採用されている画像の構造体IplimageをどのようにしたらDirect3D用のテクスチャにできるのかわからず,困っております. そもそもそのようなことができるのかも良くわかりません. どなたか,よろしくお願いします.

  • デジタルカメラに保存した「動画」をパソコンに・・・

    デジタルカメラに保存した「動画」をパソコン に取り込みたいのです。 過去にXPを使用していました。 そもそもパソコン初心者でしたが 最新のパソコンに興味が出て最近、買いました。 質問です。 デジタルカメラに保存した「動画」をパソコン に取り込みたいのです。 デジタルカメラはペンタックスoptio m30です。 USBケーブルに繋ぐことはできる商品です。 パソコンはWindows7です。 マイピクチャに保存できたら幸いです! デジタルカメラに保存した「動画」をパソコン に取り込むための操作方法を教えてください。 よろしくお願いいたします。

  • OpenCVでの動画処理(入出力)

     OpenCVを用いて動画処理を行っています。  動作環境はMacOS10.9で、MacPortsを用いて最新版(おそらく...)のOpenCVを入れています。開発環境はXCode4です。  USBカメラを接続し、cvQueryFrame(CvCapture*)の関数を用いて画像を取得しています。そのままこの関数の返り値をIplImage*に代入してはいけないようなことをどこかで聞いていたので、念のため... IplImage* cap = cvQueryFrame(capture); IplImage* img; if(cap) img = cvCloneImage(cap); else img = NULL; というようなコードを書いて、imgに対して処理を行っています。  しかし、頻度は少ないのですがたまにimgにNULLが代入されるときが有ります。頻度は5000フレームに一度あるかどうかで、再現性が低いのでなんだかよくわかりません。 これは仕様なのでしょうか?USBカメラがたまに画像を取得できない瞬間があるという理解でいいのでしょうか?  私のコードに間違いがある場合は指導お願いします。  あと、動作が正常なので、画像は取得できているのでしょうが... QTCaptureSession warning: Session received the following error while decompressing video: Error Domain=NSOSStatusErrorDomain Code=-12909 "The operation couldn’t be completed. (OSStatus error -12909.)". Make sure that the formats of all video outputs are properly configured. というような警告が標準出力される時があります。 この警告の頻度はなかなか多く、200フレームに一度ぐらいあります。 動作は正常ですが、この瞬間だけ処理速度が少し落ちる傾向があるようです。 ちなみに言語はC++を用いています。 よろしくお願いします。