2015년 11월 13일 금요일

python log - opencv

opencv 를 프로젝트 때문에 사용

opencv 자체는
apt-get install python-opencv
만 하면 되니 간편

OS X에선
brew tap homebrew/science
brew install opencv
로 설치하고 심볼릭 링크를 꼭 만들어줘야함.
cd /Library/Python/2.7/site-packages 후
ln -s /usr/local/Cellar/opencv/2.4.12/lib/python2.7/site-packages/cv.py cv.py
ln -s /usr/local/Cellar/opencv/2.4.12/lib/python2.7/site-packages/cv2.so cv2.so

내 경우는 이렇게 opencv 버전에 따라 2.4.12 대신 다른 걸 사용할 수 있다.

libdc1394 error: Failed to initialize libdc1394

이런 오류가 발생할 수 있는데
http://stackoverflow.com/questions/12689304/ctypes-error-libdc1394-error-failed-to-initialize-libdc1394

여기 내용을 보고
sudo ln /dev/null /dev/raw1394

1394 관련 내용 추가

sudo apt-get install python-pip

로 pip 도 설치. orangepi 기준으론 시간이 좀 걸림 ( https://www.raspberrypi.org/documentation/linux/software/python.md ) 참조.

http://www.slideshare.net/arload/flask-restful-api
Stack을 줄이기 위해 사용해야하는 기존 엔진을 직접 flask로 웹서버화 할까도 생각 중


ImportError: No module named stasm 오류 난다.
Pystasm도 설치

pip install PyStasm

설치 중 오류난다.

src/stasm.h:33:30: fatal error: opencv2/opencv.hpp: No such file or directory

슬슬 괴롭다.
얘는 뭐 자료도 없고 stasm 뭐니. 
http://www.milbo.users.sonic.net/stasm/ 에서 tar.gz을 받고

https://github.com/alyssaq/stasm_build 따라서 빌드했더니

➜  stasm4.1.0  ./build/stasm_util -s -f data ../test_img/JH0516.jpg
뭐 이런건 잘 나옴.
...
499 671
474 681
446 685
418 682
394 674
x,y만 좌륵 나오고 친절하게 점까지 찍어준다


sklearn 추가.
sudo apt-get install python-sklearn  

OSX)
brew install scipy



pip install scikit-learn
답답해서 egg 파일 추가 PyStasm-0.3.0-py2.7-linux-x86_64.egg 를 다운받아 easy_install PyStasm-0.3.0-py2.7-linux-x86_64.egg 로 설치

ImportError: libopencv_core.so.3.0: cannot open shared object file: No such file or directory

이번엔 호환이 안된다.
sudo ldconfig -v | grep opencv_core


libopencv_core.so.2.4 -> libopencv_core.so.2.4.8

현재 버전이 3.0 이 아니다.
cmake 부터 받고

opencv 3.0 도 받자.

cmake 하고
make
sudo make install
sudo ldconfig
까지
OS X에선 실패했다.

근데 이번엔 numpy 쪽 오류
정확하게 이 증상.
답변자 말대로 하면 안되고
sudo apt-get remove python-joblib
sudo apt-get remove python-sklearn
설치 후 
pip install -U scikit-learn
하니 된다.

거의 다 되었다 싶은데 이젠
AttributeError: 'module' object has no attribute 'CV_LOAD_IMAGE_COLOR'

이 오류가;;
보니까 소스를 고쳐야겠다.

    targetImage = cv2.imread(fileName, cv2.CV_LOAD_IMAGE_COLOR)

이 부분을 이렇게
    targetImage = cv2.imread(fileName, cv2.IMREAD_COLOR)

고치니 일단 작동은 한다.
솔직히 속도는 한심하다.