我需要一个移动摄像头作为网络摄像头。我需要为我的 openCV 应用程序进一步处理相机视频。但是可用于此目的的软件缺乏所需的 api 文档。(我的意思是如何访问手机摄像头界面)所以任何人都可以给我这个场景的好建议。提前致谢。
问问题
4046 次
2 回答
2
为了让它工作,我们首先需要一个移动客户端。您可以在您的安卓手机上下载“IP 网络摄像头”应用程序。配置端口(例如:2333)并启动服务器。
如果您的计算机和移动设备连接到同一个本地网络,您可以在计算机的 Web 浏览器上键入您的手机应用程序上显示的 IP 地址。那应该没问题。这样,流通过速度很慢的wifi传输。
为了提高速度,您可以通过 USB 连接。我们将通过 USB 重定向 TCP 流。在您的 android 设备上打开调试模式并在您的计算机上安装 android ADB 工具。要转发流,语法是:
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;
}
}
于 2019-04-17T10:30:49.640 回答
0
我认为,这实际上不是 openCV 的问题。我假设该应用程序将在 PC 上运行。你有两个选择:
尝试使用特定于设备的驱动程序与手机的摄像头交互。也许他们中的一些人支持这样的功能。
为您的手机编写一个应用程序,它将通过 WiFi、蓝牙或其他方式流式传输视频。然后编写一组驱动程序,它将尝试检索视频源并作为网络摄像头提供给操作系统。
第三种选择涉及在移动设备上录制视频,然后将其传输到 PC,但我想这不是一个选择。
于 2013-03-04T12:52:33.757 回答