Mean of bbox and coordinates

Hi Noob here. Just trying to figure out how to find the central x and y for the bounding box or another similar way of finding the center.

This is my code so far.

import cv2
import numpy as np
thres = 0.45
nmsThresh = 0.2

cap = cv2.VideoCapture(0)
cap.set(3,1280)
cap.set(4,720)
cap.set(10,70)

classNames = []
classFile = 'coco.names'
with open(classFile,'rt') as f:
    classNames = f.read().rstrip('n').split('n')

configPath = 'ssd_mobilenet_v3_large_coco_2020_01_14.pbtxt'
weightsPath = 'frozen_inference_graph.pb'

net = cv2.dnn_DetectionModel(weightsPath,configPath)
net.setInputSize(320,320)
net.setInputScale(1.0/127.5)
net.setInputMean((127.5, 127.5, 127.5))
net.setInputSwapRB(True)

while True:
    success,img = cap.read()
    classIds, confs, bbox = net.detect(img,confThreshold=thres,nmsThreshold=nmsThresh)
    print("coor is:",np.mean(bbox))
    try:
        if len(classIds) !=0:
         for ClassId, confidence,box in zip(classIds.flatten(),confs.flatten(),bbox):
            cv2.rectangle(img,box,color=(0.255,0),thickness=2)
            cv2.putText(img,classNames[ClassId-1].upper(),(box[0]+10,box[1]+30),
                        cv2.FONT_HERSHEY_COMPLEX, 1, (0, 255, 0), 2)
            cv2.putText(img, str(round(confidence * 100, 2)), (box[0] + 200, box[1] + 30),
                        cv2.FONT_HERSHEY_COMPLEX, 1, (0, 255, 0), 2)
    except:
        pass



    cv2.imshow("Output",img)
    cv2.waitKey(1)

Any help would be greatly appreciated

do you know what part of that code you found on the internet represents the bounding box? if you don’t, how would you find out?

crosspost:

To be honest. I just followed this video followed it and got to a working. Changed parts of it myself because of errors but only small bits.

oh great, Murtaza’s s…tuff. so he chose to show his followers to use magic numbers in the VideoCapture set() calls, instead of using cv.CAP_PROP_FRAME_WIDTH and so on…

anyway, how would you go about understanding the code? you need to understand it if you want to change it. that is fundamental to programming, also unavoidable.

I understand it fairly well. I’ve tried using bbox_split(0) but nothing has worked. Thanks for the help

what is that supposed to do? bbox_split is not a defined function

What I Tried to do was split the array into the 4 set of numbers and minus it all to get the numbers. But that does not work. So I though there must be some sort of OpenCV command for it.

print the bbox variable. you’ll probably see a 2d numpy array