[英]I have this code, trying to run a social isolation identification by capturing video, but I have this error. Could you help me?
I have this code, trying to run a social isolation identification by capturing video, but I get the following error:我有这段代码,试图通过捕获视频来运行社会隔离识别,但我收到以下错误:
Traceback (most recent call last): File "social_distance_detection.py", line 127, in cv2.rectangle(frame, (startX, startY), (endX, endY), COLOR, 2) TypeError: only integer scalar arrays can be converted to a scalar index回溯(最近一次调用最后一次):文件“social_distance_detection.py”,第 127 行,在 cv2.rectangle(frame, (startX, startY), (endX, endY), COLOR, 2)到标量索引
Could you help me?你可以帮帮我吗?
Here is the code I am running:这是我正在运行的代码:
for i in range(detections.shape[2]):
confidence = detections[0, 0, i, 2]
if confidence > args["confidence"]:
class_id = int(detections[0, 0, i, 1])
box = detections[0, 0, i, 3:7] * np.array([w, h, w, h])
(startX, startY, endX, endY) = box.astype('int')
# Filtering only persons detected in the frame. Class Id of 'person' is 15
if class_id == 15.00:
# Draw bounding box for the object
cv2.rectangle(frame, (startX, startY), (endX, endY), bounding_box_color[class_id], 2)
label = "{}: {:.2f}%".format(labels[class_id], confidence * 100)
print("{}".format(label))
coordinates[i] = (startX, startY, endX, endY)
for i in pos_dict.keys():
if i in close_objects:
COLOR = np.array([0,0,255])
else:
COLOR = np.array([0,255,0])
(startX, startY, endX, endY) = coordinates[i]
cv2.rectangle(frame, (startX, startY), (endX, endY), COLOR, 2)
y = startY - 15 if startY - 15 > 15 else startY + 15
# Convert cms to feet
cv2.putText(frame, 'Depth: {i} ft'.format(i=round(pos_dict[i][2]/30.48,4)), (startX, y),
cv2.FONT_HERSHEY_SIMPLEX, 0.5, COLOR, 2)
cv2.namedWindow('Frame',cv2.WINDOW_NORMAL)
You need to cast coordinates to int in rectangle method.您需要在矩形方法中将坐标转换为 int。 Use (int(startX,int(startY)) same for end point.使用 (int(startX,int(startY)) 相同的端点。
Use利用
for i in pos_dict.keys():
if i in close_objects:
COLOR = (0,0,255)
else:
COLOR = (0,255,0)
instead of代替
for i in pos_dict.keys():
if i in close_objects:
COLOR = np.array([0,0,255])
else:
COLOR = np.array([0,255,0])
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.