이 모든 OpenCV Python 인터페이스의 차이점은 무엇입니까?


88

있습니다

  • opencv (OpenCV 사람들의 라이브러리),
  • cv (OpenCV 녀석의 오래된 라이브러리) 및
  • pyopencv그것의 전임자와 함께 ctypes-opencv.

주요 차이점은 무엇이며 어떤 것을 사용해야합니까?

답변:


138

공식적으로 OpenCV는 두 가지 유형의 Python 인터페이스 cvcv2.

이력서:

에서 작업을 시작했습니다 cv. 여기에서 모든 OpenCV 데이터 유형은 그대로 유지됩니다. 예를 들어로드 될 때 이미지는 cvMatC ++에서와 동일한 형식 입니다.

배열 작업의 경우,이 같은 몇 가지 기능은 cvSet2D, cvGet2D, 등 그리고 어떤 토론이 말을, 그들은 느립니다.

imageROI의 경우 cvSetImageROI.

윤곽선을 찾으면 cvSeqPython 목록이나 NumPy 배열에 비해 작업하기에 좋지 않은 구조가 반환됩니다.

(그리고 곧 개발이 중단 될 것이라고 생각합니다. 이전에는 cv. 나중에 OpenCV에 cvcv2. 둘 다 함께 제공되었습니다 . 이제 최신 릴리스에는 cv2모듈 만 있으며 cv내부에 하위 클래스가 있습니다 cv2. 호출해야합니다. import cv2.cv as cv액세스합니다.)

cv2 :

그리고 최신 버전은 cv2입니다. 이러한면에서, 모든로 반환됩니다 NumPy같은 객체 ndarraynative Python같은 객체 lists, tuples, dictionary, 등 그래서 때문에이 NumPy와 지원에, 당신은 여기에 어떤 NumPy와 작업을 할 수 있습니다. NumPy매우 안정적이고 빠른 어레이 처리 라이브러리입니다.

예를 들어 이미지를로드하면 ndarray이 반환됩니다.

array[i,j] (i, j) 위치의 픽셀 값을 제공합니다.

또한 imageROI의 경우 배열 슬라이싱을 ROI=array[c1:c2,r1:r2]. 별도의 기능이 필요 없습니다.

두 개의 이미지를 추가하려면 함수를 호출 할 필요가 없습니다 res = img1+img2. (하지만 NumPy 추가는 이미지와 같은 uint8 배열에 대한 모듈로 연산입니다. 자세한 내용은 OpenCV의 Matrix Arithmetic과 Numpy의 차이점 기사를 참조하십시오 .

반환 된 윤곽선은 Numpy 배열 목록입니다. Contours-1 : Getting Started 에서 Contours 에 대한 자세한 설명을 찾을 수 있습니다 .

요컨대, cv2를 사용하면 모든 것이 간단하고 매우 빠릅니다.

NumPy 속도 향상에 대한 간단한 토론 cv2은 Stack Overflow 질문 OpenCV-Python 인터페이스, cv 및 cv2의 성능 비교에 있습니다.

pyopencv :

나는 그것을 사용하지 않았기 때문에 이것에 대해 많이 알지 못합니다. 그러나 그것은 더 이상의 개발을 중단 한 것 같습니다.

나는 공식 도서관을 고수하는 것이 더 나을 것이라고 생각합니다.

요컨대 cv2를 사용하는 것이 좋습니다!

편집 : Python 용 Windows에 OpenCV 설치 에서 cv2모듈의 설치 절차를 볼 수 있습니다 .


소스에서 OpenCV를 빌드하는 경우 cv2 Python 인터페이스가 컴파일되고 설치됩니다. Linux 또는 기타 OS 용 바이너리 패키지를 사용하는 경우 OS / 배포 문서를 참조해야합니다. 도움이 필요하면 goo.gl/MUjXi 를 참조 하세요.
TH.

1
@Framester :이 링크에서 cv2 설치 절차를 참조하십시오. opencvpython.blogspot.in/2012/05/…
Abid Rahman K

Abid의 대답은 훌륭합니다. 한 가지 더 말씀 드리면, 저는 Python 3.x로 프로젝트를 수행 했으며 opencv에 액세스 할 수있는 유일한 방법은 ctypes_opencv와 원본 OpenCV 1.0을 통해서였습니다. OpenCV pre1.1에 대한 지원을 주장하지만 작동하지 않았습니다. 이를 통해 원래 cvSetROI 등 C 유형 인터페이스를 사용하게됩니다.
KobeJohn

pip로 설치하려는 경우. 여기에서 읽 거나 다음을 수행하십시오.pip install opencv-python
Timo
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.