【发布时间】:2020-11-20 01:50:34
【问题描述】:
我正在尝试为我的猫制作一个跟踪激光网络摄像头玩具,但我目前正在努力使用 Android 手机的 IP 网络摄像头,因为它不会显示任何内容,并且我收到错误“initStream 无法重置流”我附上了下面的代码!我还是 Python 新手,很想了解更多! =)
import cv2
import numpy as np
#Cam
url = "http://192.168.x.x:8080/shot.jpg"
img_resp = requests.get(url)
img_arr = np.array(bytearray(img_resp.content),dtype=np.uint8)
img = cv2.imdecode(img_arr,-1)
cap =cv2.VideoCapture(0)
ret, frame = cap.read()
#Movement tracker
while cap.isOpened():
ret = cap.set(3,320)
ret = cap.set(4,240)
diff = cv2.absdiff(frame, frame)
gray = cv2.cvtColor(diff, cv2.COLOR_BGR2GRAY)
blur = cv2.GaussianBlur(gray, (5,5), 0)
_, thresh = cv2.threshold(blur, 20, 255, cv2.THRESH_BINARY)
dilated = cv2.dilate(thresh, None, iterations=3)
contours, _ = cv2.findContours(dilated, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)
for contour in contours:
(x, y, w, h) = cv2.boundingRect(contour)
if cv2.contourArea(contour) < 900:
continue
cv2.rectangle(frame, (x, y), (x+w, y+h), (255, 20, 30), 3)
cv2.putText(frame, "Status: {}".format('Movement'), (10, 20), cv2.FONT_HERSHEY_SIMPLEX,
1, (0, 0, 255), 3)
cv2.circle(frame, (x, y), 3, (200, 50, 180), 2)
image = cv2.resize(frame, (1280, 720))
cv2.imshow("feed", frame)
ret, frame2 = img.read()
if cv2.waitKey(1) == 27:
break
cv2.destroyAllWindows()
img.release()
【问题讨论】:
标签: python opencv webcam tracking