回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>我有这段代码,试图通过捕获视频来运行社会隔离标识,但我得到以下错误:</p>
<blockquote>
<p>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</p>
</blockquote>
<p>你能帮我吗</p>
<p>以下是我正在运行的代码:</p>
<pre><code>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)
</code></pre>
<p>错误><a href="https://i.stack.imgur.com/BZSZJ.jpg" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/BZSZJ.jpg" alt="https://i.stack.imgur.com/BZSZJ.jpg"/></a></p>