【问题标题】:Streaming DroidCam video to OpenCV Python in ANYWAY possible以任何方式将 DroidCam 视频流式传输到 OpenCV Python
【发布时间】:2016-07-06 06:33:57
【问题描述】:

我目前在我的 android 上安装了 Droid cam 应用程序,它正在被检测到并通过 wifi(Droid Cam 客户端)在 Skype 上进行流式传输。然而,无论我为以下输入什么数字,它都不会流式传输到 OpenCV。

cap=cv2.VideoCapture()

除此之外,我还有一个 IP 地址,那么有什么方法可以实现这一点,以便 OpenCV 可以从我的相机无线读取过程图像? 我知道它甚至没有开始读取相机,因为我已经使用以下代码对其进行了测试,每次运行它都会返回 FALSE。

cap=cv2.Videocapture(0) #Use default cam
i=0
while(i<50):
    ret,frame=cap.read()
    print ret

一直返回 false,表示无法识别相机:L

【问题讨论】:

标签: android python opencv android-camera


【解决方案1】:

您必须输入 droidcam 的 IP 地址,然后输入格式。以下方法对我来说完美无缺: cap = cv2.VideoCapture('http://0.0.0.0:4747/mjpegfeed?640x480')

确保您打开客户端并且不要在其他地方访问相机源

【讨论】:

    【解决方案2】:
    • 安装 Droid Cam
    • 启用 USB 调试
    • 通过 USB 将相机连接到您的计算机
    • 下面更改IP地址

      cap = cv2.VideoCapture('http://192.168.0.21:4747/mjpegfeed')

    【讨论】:

      【解决方案3】:

      DroidCam 有一个 MJPEG 端点,您可以尝试使用,

      http://ip:port/mjpegfeed

      见:Reading stream from IP camera with cv2.VideoCapture()

      【讨论】:

        【解决方案4】:

        【讨论】:

          【解决方案5】:

          我只是按照以下说明为我工作。

          1. 安装 Droidcam;
          2. 启用 USB 调试
          3. 通过 USB 将相机连接到您的计算机
          4. 使用代码:

          cap = cv2.VideoCapture(0)

          【讨论】:

            【解决方案6】:
            cap=cv2.Videocapture(0)
            i=0
            while(i<50):
                ret,frame=cap.read() //change car -> cap
                print ret
            

            【讨论】:

              【解决方案7】:
              i=0
              while(i<50):
                  #put this statement inside the loop to capture the frame returned by ip webcam or 
                  #droidcam in every iteration
                  #put image address in the parameter
                  cap=cv2.VideoCapture('http://192.168.x.x:4747/shot.jpg?rnd=890215') 
                  ret,frame=car.read()
                  print(ret)
              

              【讨论】:

                【解决方案8】:

                这是通过 droidcam 将视频从 android 无线传输到 opencv 的 python 代码

                import numpy as np
                import cv2
                
                #go to the setting find ip cam username and password if it is not empty use 
                #first one
                #cap = cv2.VideoCapture('http://username:password@ip:port/video')
                cap = cv2.VideoCapture('http://ip:port/video')
                
                
                while(cap.isOpened()):
                    ret, frame = cap.read()
                
                    #do some stuff
                    gray  = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
                    cv2.imshow('frame',gray)
                    if cv2.waitKey(1) & 0xFF == ord('q'):
                        break
                
                cap.release()
                cv2.destroyAllWindows()
                

                【讨论】:

                  【解决方案9】:

                  在 PC 和移动设备上安装 droidcam 应用,然后编写以下代码:

                  import cv2
                  
                  cap =cv2.VideoCapture(1)
                  
                  while True:
                      _, img = cap.read()
                  
                      cv2.imshow("img", img)
                      cv2.waitKey(1)
                  

                  【讨论】:

                    【解决方案10】:

                    answer here 为我工作,用 http://my-ip:8080/shot.jpg 替换 IP Webcam 应用程序的 URL。这是我的代码:

                    import cv2
                    import urllib.request
                    import numpy as np
                    
                    my_ip = # ip given by ip-webcam
                    
                    while True:
                        req = urllib.request.urlopen('http://'+my_ip+':8080/shot.jpg')
                        arr = np.asarray(bytearray(req.read()), dtype=np.uint8)
                        img = cv2.imdecode(arr, -1) # 'Load it as it is'
                    
                        if cv2.waitKey(1) == 27:
                            break
                        cv2.imshow('Its Me', img)
                    
                    cv2.destroyAllWindows()
                    

                    【讨论】:

                      【解决方案11】:

                      其简单的 droidcam 应用程序显示网址;只需将其复制并粘贴到视频捕获中即可。

                      IP Cam Access:
                      http://192.168.29.201:4747/video
                      

                      像这样粘贴网址:

                      import cv2
                      
                      cap = cv2.VideoCapture('http://192.168.29.201:4747/video')
                      
                      while True:
                          ret, frame = cap.read()
                      
                          cv2.imshow("frame", frame)
                          cv2.waitKey(1)
                      

                      就是这样。 Opencv 应该从你的 droidcam 获取信息。

                      【讨论】:

                      • 注意:droidcam 应用程序应该在您的手机中处于活动状态。
                      猜你喜欢
                      • 1970-01-01
                      • 2020-10-27
                      • 1970-01-01
                      • 2019-10-16
                      • 2013-12-10
                      • 2017-10-14
                      • 2016-05-30
                      • 1970-01-01
                      • 1970-01-01
                      相关资源
                      最近更新 更多