私が達成しようとしているのは、私のローカルWi-Fiに接続されたpiカメラv2のラズベリー3です。ラズベリーパイからUbuntuを実行しているコンピュータにライブビデオを送信したい。私のコンピュータでは、そのビデオをリアルタイムでopencvで処理しようとしています。下のコードは、私のUbuntuコンピュータのラズベリーパイからのビデオをテストするサンプルコードです。私はビデオをストリーミングするためにnetcatを使用しており、コードの下にシェルスクリプトを記載しています。Raspberry piからリモートコンピュータのOpencvアプリケーションへのビデオストリーム
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/imgproc/imgproc.hpp>
#include <iostream>
using namespace std;
using namespace cv;
int main(int argc, char** argv)
{
VideoCapture cap;
cap.open("/dev/stdin");
if (!cap.isOpened())
return -1;
Mat edges;
namedWindow("edges",1);
for(;;){
Mat frame;
cap>>frame;
imshow("edges",frame);
if(waitKey(30)>=0)break;
}
return 0;
}
これはopencvでストリームを再生するためのコードです。
- まず、ストリームをopencvアプリケーションにリダイレクトします。 nc -l -p 5001 | ./app
- 次に、ラズベリーカメラを実行し、netcatを使用してストリームします。 raspivid -t 999999 -o | nc x.x.x.x 5001 xはクライアントPCのIPアドレスです。
これは私にとっては機能しませんが、mplayerで試してみました nc -l -p 5001 | mplayer-fps 31 -cache 1024 - それは完全に動作します。
私の問題は、opencvアプリケーションでストリームを正しくキャプチャしていないと思います。私は助けてください。
、どのコードがどこで実行されているのかあなたはそれをコンパイルします。広告は立っています、あなたのコードは不完全です - 少なくともヘッダファイルはありません。あなたはどんなカメラを使っていますか?あなたのネットワークはどのようなものですか?各コンピュータではどのOSが動作していますか? –
私はそれをより明確にしたと思います。あなたは何か提案を提供することができればそれは高く評価されるでしょう。 –
私はあなたのラズベリーパイで 'raspivid'を実行し、5秒のビデオをラズベリーパイのローカルディスクファイルにキャプチャします。次に、 'FTP'や' scp'を使ってUbuntuにファイルを転送し、 './app