puigalex / deteccion-objetos-video

Deteccion de objetos sobre video usando PyTorch
56 stars 49 forks source link

Solución a error de tipo en cv2.rectangle y cv2.puText #20

Open RDLL opened 3 years ago

RDLL commented 3 years ago

En las lineas 104, 105 y 106 en deteccion_video.py da los siguientes errores

frame = cv2.rectangle(frame, (int(x1), int(y1) + int(box_h)), (int(x2), int(y1)), color, 5)

cv2.putText(frame, classes[int(cls_pred)], (x1, y1), cv2.FONT_HERSHEY_SIMPLEX, 1, color, 5) #Nombre de la clase detectada

cv2.putText(frame, str("%.2f" % float(conf)), (x2, y2 - box_h), cv2.FONT_HERSHEY_SIMPLEX, 0.5,color, 5) # Certeza de prediccion de la clase

TypeError: an integer is required (got type list)

TypeError: only integer tensors of a single element can be converted to an index

Para solucionarlos hice un cast a las variables x1,y1,box_h,x2,y2 de las respectivas lineas de código

frame = cv2.rectangle(frame, (int(x1), int(y1) + int(box_h)), (int(x2), int(y1)), color, 5)

cv2.putText(frame, classes[int(cls_pred)], (int(x1), int(y1)), cv2.FONT_HERSHEY_SIMPLEX, 1, color, 5) #Nombre de la clase

cv2.putText(frame, str("%.2f" % float(conf)), (x2, int(y2 - box_h)), cv2.FONT_HERSHEY_SIMPLEX, 0.5,color, 5) # Certeza de prediccion de la clase

Uso Parrot GNU/Linux 4.10 x con kernel x86_64 Linux 5.9.0-2parrot1-amd64, no sé si se deba a eso, pero si a alguien más le sucede, está es una posible solución.

Papurri88 commented 3 years ago

tuve el 1er problema y al cambiar el código por por tu solución me devolvió : ``Traceback (most recent call last): File "deteccion_video.py", line 106, in cv2.putText(frame, str("%.2f" % float(conf)), (x2, int(y2 - box_h)), cv2.FONT_HERSHEY_SIMPLEX, 0.5,color, 5) # Certeza de prediccion de la clase TypeError: only integer tensors of a single element can be converted to an index"

ayuda pls :(