2016年10月19日 星期三

OPENCV(1 )--How to install OPENCV in Python


   This page show how to install OPENCV in Python.

A.In windows
1.先下載及安裝Python 2.7 or 3.x
       https://www.python.org/downloads/

      雖然很多人還是愛用python2.7版,但是我還是建議安裝Python3.x 版
      安裝時記得將底下add python 3.5 to path 打勾,至於安路徑目錄可以自行修改到
     任一磁碟都可以.




安裝好之後,直接開啟Dos 命令視窗.直接打python  按Enter ,應該會出現如下畫面
表示python 安裝成功,





    p.s 按ctrl+z , enter 可以離開python直譯器環境回到Dos 命令下

2.確認有網路連線下,在Dos 命令視窗 key 以下 指令
    a. pip install opencv-python
          ==>會自動搜尋安裝符合系統上已安裝Python的OPENCV版本
        ex:你安裝的Python 是3.5.2  ,PIP 會從網路找到與python 3.5x 版匹配的OPENCV
    b. pip install --upgrade numpy
         ==>update python 內建的numpy 套件,這個套件是用來專門處裡影像Pixel 矩陣的套件
             在Python 裡會使用numpy 來取代OPENCV 原本在C++ 裡提供的MAT 資料結構
 
    c .pip install Matplotlib
        ==>這個就是類似Matlab 的python 套件 ,方便用來秀圖及分析影像Pixel 矩陣的工具.
        非必要套件,但是建議安裝.


EX:




安裝好之後,直接開啟Dos 命令視窗.直接打python  按Enter ,
再輸入import cv2 按enter,如下圖如果沒出現任何錯誤,表示opencv 已安裝成功.



按ctrl+z , enter 可以離開python直譯器環境


測試:
底下提供一個秀圖的簡單程式.注意:你必須用你自己有的圖檔直接可以把圖檔名
messi5.jpg  ==>換成你自己的圖檔名, 放在跟cv01.py  程式碼同一目錄下
1. 先將程式碼寫好存成cv01.py
2. 然後在dos 命令視窗, 直接切到存放 cv01.py的目錄下

輸入 python  cv01.py   即可直接執行

import cv2
import numpy as np

#載入影像
img = cv2.imread('messi5.jpg',-1)     #1:default color ,0: Gray ,-1:Alpha

#建立視窗秀出影像
cv2.namedWindow('image', cv2.WINDOW_NORMAL) #WINDOW_AUTOSIZE 
cv2.imshow('image',img)

#按ESC key結束
k = cv2.waitKey(0)
if k == 27:         # wait for ESC key to exit
    cv2.destroyAllWindows()
elif k == ord('s'):   # wait for 's' key to save and exit
    cv2.imwrite('Save.png',img)
    cv2.destroyAllWindows()



B.In  Linux:

 在linux 底下如Ubutu 16.04 已有內建python2.7 及python3.x,所以不須再安裝python

有關在Linux的環境安裝OPENCV可以參考底下文章
http://www.pyimagesearch.com/2015/07/20/install-opencv-3-0-and-python-3-4-on-ubuntu/
或是參考底下
https://milq.github.io/install-opencv-ubuntu-debian/
裡面已有提供一batch file < install_opencv.sh>
在shell 底下直接執行
bash   install_opencv.sh
即可安裝好opencv




加入阿布拉機的3D列印與機器人的FB專頁
https://www.facebook.com/arbu00/

Scan QRcode to join FB Fans.