2017년 5월 24일 수요일

Opencv for mac 설치 - miniconda

  • [Python - OpenCV 설치하기]
 
- 설치환경
OS : macOS 10.12 (Sierra)
 
파이썬 강좌를 공부하다 보면 응용사용법 중에  openCV를 이용하는 부분이 있다. 
그런데 강좌에서 진행되는 것과는 다르게 본인의 맥에서는 난리가 나며 openCV가 제대로 동작하지 않는 기이한 현상이 발생하여 잠시 포기상태에 있다가
패러럴즈 가상환경 구축을 통해 맥에 openCV를 구축해 보았다.
 
방법은 여러가지가 있는 것으로 보여진다. 앞오로 한두가지 정도는 더 시도해 볼 생각이지만, 이번에는 miniconda를 사용한 설치는 정리해 본다.
 
참고한 사이트는 아래와 같다.
 
 
miniconda를 이용하여 설치하는 방법은 의외로 간단했다.
 
다만!!!! python 버전을 타는게 문제였다.
 
Python.org 사이트에 접속하여 다운로드로 가면 현재(17.5월 기준) 3.6.1버전이 당당하게 보인다. 이거 설치하지 마라.. 맨 마지막에서 
 

Fetching package metadata .............
Solving package specifications: .

UnsatisfiableError: The following specifications were found to be in conflict:

  • opencv 2.4.11* -> numpy 1.9* -> python 2.6* -> openssl 1.0.1*
  • python 3.6*
    Use "conda info " to see the dependencies for each package.
이런식의 에러를 볼 수 있을 것이다.
 
그럼  miniconda를 사용하여 openCV를 설치해 보자
 
1. python 설치 : python.org 로 가서 3.5.X버전을 설치한다. (download -> all release) (17.5월 기준 3.5.3이 최신)
 
2. miniconda 설치 : https://conda.io/miniconda.html 사이트로 가면 OS X용이 있음(이건 python 3.6) 다운로드함.
   터미널을 열고, 다운로드 받은 위치로 가서
 
   $bash Miniconda3-latest-MacOSX-x86_64.sh 
 
   실행. 혹은 그냥 터미널을 열고
 
   $bash 를 친후 finder에서 ‘Miniconda3-latest-MacOSX-x86_64.sh’를 클릭하여 터미널로 드래그하면 경로까지 입력됨
 
   터미널을 닫았다가 다시 염.
   (원문에서는 $cd ~ 후, $. .bash_profile을 해도 동일한 효과라는데, 그냥 닫아다가 염)
 
   설치가 정상적으로 되었는지 확인
   $conda info
   …. < 뭐가 막 나옴.> ㅎㅎㅎ
 
3. 가상환경 구성 : 각각의 개발환경에 맞춘 가상환경 구성이 가능.
   $conda create -n myenv python=3.5.     —> 가상환경 구성
   $source activate myenv                         —> 가상환경 활성화 (프롬프트가 바뀜)
 
4. Numpy 설치 : OpenCV가 Numpy를 사용하기 때문
   $conda install numpy
 
5. 아나콘다 클라이언트 설치 : openCV는 직접적으로 miniconda에 제공되지 않고 아나콘다 저자소의 서드파티로서 제고되기 때문임
   $conda install anaconda-client
 
6. openCV 검색
   $anaconda search -t condo opencv3
 
   —> 여러 목록이 나오는데,  mempo/opencv3를 사용
 
7. Opencv 설치
   $conda install —channel https://conda.anaconda.org/menpo opencv3
 
   (위를 써도 되고…)
   $conda install -c menpo opencv3
   (이것도 된다)
 
8. 테스트
   $python
   >>> import cv2
   >>>
 
(이미지 변환을 위한 샘플 예제는 원문 사이트에 있으니 따라해봐도 좋다.)
 
샘플코드 실행 결과