본문 바로가기

개발자/Computer Vision

OpenCV Rectangle 함수 에러 해결법 rectangle typeerror: function takes exactly 4 arguments (2 given)

반응형

위 에러는 OpenCV에서 3.4 버전의 이하 버전은 그 이후에 지원하지 않는 프로토타입 때문에 생기는 에러다.

이 경우 해결 방법은 다음 두 가지이다.

1. 아래의 프로토타입을 사용한다.

cv2.rectangle(cpy, (rc[0],rc[1]),(rc[0]+200,rc[1]+200), (0, 0, 255), 2) # 빨간색으로 두께가 2픽셀 짜리의 사각형을 그리는 함수

2. OpenCV의 버전을 그냥 업그레이드 한다.

Python 3.7.3을 사용하는 conda 환경의 우분투에서 실행할 때

최신 버전 구하기 옵션 : 버전 지정
특정 버전을 원하면 언제든지 지정할 수 있습니다

conda install -c conda-forge opencv=4.1.1

Conda는 env에서 무언가를 업데이트하지 않고는 이것을 설치할 수 없기 때문에 첫 번째 해결이 실패하고 전체 해결이 당신을 위해 그것을 얻을 것입니다.

옵션 : 동결 건너 뛰기
물론, 최신 버전 번호가 무엇인지 항상 알 수있는 것은 아니며 매번 Anaconda Cloud에서이 번호를 조회하지 않아도됩니다. 다행히도 --update-deps 가 있습니다 기본적으로 첫 번째 해결 단계를 건너 뛰고 전체 해결로 바로 이동하는 플래그입니다. 그러면 시스템의 최신 버전이 설치되고 종속성이 업데이트됩니다.

conda install --update-deps -c conda-forge opencv

 

사실상 이런 문제들은 OpenCV doc 홈페이지 가보면 다 알수 있다.(docs.opencv.org/master/d6/d6e/group__imgproc__draw.html#ga07d2f74cadcf8e305e810ce8eed13bc9)

반응형