<p>对于那些想知道我能在OpenCV上获得好消息的人:</p>
<p>首先,如果有pip,您需要下载GoPro Python API:</p>
<pre><code>pip install goprocam
</code></pre>
<p>如果没有</p>
<pre><code>git clone https://github.com/konradit/gopro-py-api
cd gopro-py-api
python setup.py install
</code></pre>
<p>然后在python终端窗口中运行以下代码:</p>
<pre><code>from goprocam import GoProCamera
from goprocam import constants
gopro = GoProCamera.GoPro()
gopro.stream("udp://127.0.0.1:10000")
</code></pre>
<p>这将把UDP流重新传输到本地主机,路径上需要FFmpeg!</p>
<p>然后可以使用OpenCV打开本地主机流:</p>
<pre><code>import cv2
import numpy as np
from goprocam import GoProCamera
from goprocam import constants
cascPath="/usr/share/opencv/haarcascades/haarcascade_frontalface_default.xml"
faceCascade = cv2.CascadeClassifier(cascPath)
gpCam = GoProCamera.GoPro()
cap = cv2.VideoCapture("udp://127.0.0.1:10000")
while True:
ret, frame = cap.read()
gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
faces = faceCascade.detectMultiScale(
gray,
scaleFactor=1.1,
minNeighbors=5,
minSize=(30, 30),
flags=cv2.CASCADE_SCALE_IMAGE
)
for (x, y, w, h) in faces:
cv2.rectangle(frame, (x, y), (x+w, y+h), (0, 255, 0), 2)
cv2.imshow("GoPro OpenCV", frame)
if cv2.waitKey(1) & 0xFF == ord('q'):
break
cap.release()
cv2.destroyAllWindows()
</code></pre>
<p>请参阅更多示例<a href="https://github.com/KonradIT/gopro-py-api/tree/master/examples/opencv_gopro" rel="nofollow noreferrer">here</a>-您甚至可以使用纯的<a href="https://github.com/KonradIT/gopro-py-api/blob/master/examples/opencv_gopro/ffmpegless-preview.py" rel="nofollow noreferrer">OpenCV to open the stream</a>尽管我不推荐这样做,因为这样做非常滞后,ffmpeg>;localhost>;opencv与opencv相比非常稳定。</p>