ウェブカメラとしてモバイルカメラが必要です。openCVアプリケーションのカメラビデオをさらに処理する必要があります。ただし、この目的で使用できるソフトウェアには、APIの必要なドキュメントがありません。(私は電話のカメラインターフェースにアクセスする方法を意味します)それで、誰かが私にこのシナリオのための良いアドバイスを与えることができます。前もって感謝します。
2 に答える
それを機能させるには、まずモバイルクライアントが必要です。あなたはあなたのAndroid携帯電話に「IPウェブカメラ」アプリをダウンロードすることができます。ポート(例:2333)を構成し、サーバーを起動します。
コンピューターとモバイルが同じローカルネットワークに接続している場合は、コンピューターのWebブラウザーの電話アプリに表示されているIPアドレスを入力できます。それは大丈夫なはずです。このように、ストリームは遅いwifi経由で転送されます。
速度を上げるために、USB経由で接続できます。USB経由でTCPストリームをリダイレクトします。Androidデバイスでデバッグモードをオンにし、コンピューターにAndroidADBツールをインストールします。ストリームを転送するための構文は次のとおりです。
adb forward <local> <remote>
for example:
./adb forward tcp:5555 tcp:2333
192.168.XX.XX:2333
お使いの携帯電話をお使いのコンピュータに転送しましたhttp://localhost:5555/
次に、このリンクを使用できます。
OpenCVプロジェクトで使用するには、次の例を試してください。
#include <opencv2/opencv.hpp>
#include <iostream>
int main(int, char**) {
cv::VideoCapture vcap;
cv::Mat image;
const std::string videoStreamAddress = "http://localhost:5555/video";
//open the video stream and make sure it's opened
if(!vcap.open(videoStreamAddress)) {
std::cerr << "Error opening video stream or file" << std::endl;
return -1;
}
for(;;) {
vcap.read(image);
cv::imshow("Output Window", image);
if(cv::waitKey(1) >= 0) break;
}
}
実際にはopenCVの問題ではないと思います。アプリケーションはPC上で実行されると思います。2つのオプションがあります。
デバイス固有のドライバーを使用して、電話のカメラとのインターフェイスを試みます。たぶんそれらのいくつかはそのような機能をサポートしています。
Wi-Fi、Bluetooth、またはその他の方法でビデオをストリーミングするモバイル用のアプリケーションを作成します。次に、一連のドライバーを作成します。これにより、ビデオフィードを取得し、WebカメラとしてOSに提供しようとします。
3番目のオプションは、モバイルでビデオを録画してからPCに転送することですが、これはオプションではないと思います。