Programming/errors

파이썬(python) OpenCV(4.5.4) :-1: error: (-5:Bad argument) in function 'rectangle'

방황하는 데이터불도저 2023. 1. 30. 19:08

opencv 라이브러리로 bounding box 좌표를 입력하여, box를 그려주는 코드를 작성하다가 해당 에러가 났다.

> Overload resolution failed:
>  - Can't parse 'pt1'. Sequence item with index 0 has a wrong type
>  - Can't parse 'pt1'. Sequence item with index 0 has a wrong type
>  - Can't parse 'rec'. Expected sequence length 4, got 2
>  - Can't parse 'rec'. Expected sequence length 4, got 2

 

 

항상 깜빡하던 것이 이유였다.

rectangle 함수의 좌표에는 int 정수형 값만 입력해야한다.

 

입력해준 boxes 변수가 float형이라서 에러가 발생함.

원래 코드

def drawBoxes(boxes, image):
    
    for (startX, startY, endX, endY) in boxes:
    
        cv2.rectangle(image, (startX, startY), (endX, endY), (0,255,0), 3)
    
    return image

개선 코드

def drawBoxes(boxes, image):
    
    for (startX, startY, endX, endY) in boxes:
        
        cv2.rectangle(image, (int(startX), int(startY)), (int(endX), int(endY)), (0,255,0), 3)
    
    return image

- 좌표값을 int형으로 변환시켜서 입력하니 에러가 뜨지않고 제대로된 결과가 나왔다.