python OpenCV 入門教程

pythontab發表於2016-09-21

雖然python 很強大,而且也有自己的影像處理庫PIL,但是相對於OpenCV 來講,OpenCV更加強大, 可以做更多更復雜的應用,比如人臉識別等。跟很多開源軟體一樣OpenCV 也提供了完善的python 介面,非常便於呼叫,它包含了超過2500 個演算法和函式,幾乎任何一個能想到的成熟演算法都可以透過呼叫OpenCV 的函式來實現,非常實用。


OpenCV的全稱是:Open Source Computer Vision Library。OpenCV是一個基於BSD許可(開源)發行的跨平臺計算機視覺庫,可以執行在Linux、Windows和Mac OS作業系統上。它輕量級而且高效——由一系列 C 函式和少量 C++ 類構成,同時提供了Python、Ruby、MATLAB等語言的介面,實現了影像處理和計算機視覺方面的很多通用演算法。

1、影像讀入:cv2.imread()

使用函式cv2.imread() 讀入影像。這幅影像應該在此程式的工作路徑,或者給函式提供完整路徑,第二個引數是要告訴函式應該如何讀取這幅圖片。


• cv2.IMREAD_COLOR:讀入一副彩色影像。影像的透明度會被忽略,

這是預設引數。

• cv2.IMREAD_GRAYSCALE:以灰度模式讀入影像

#!/bin/python
# -*- coding: utf-8 -*-
import cv2
#import numpy as np
# 彩色圖模式載入一副彩圖
img = cv2.imread('pythontab.jpg',cv2.IMREAD_COLOR)

注意:呼叫opencv,就算影像的路徑是錯的,OpenCV 也不會報錯或者有warning提示。那麼我們如何判斷我們載入的影像是正確的呢?很簡單,只需要判斷print img時得到的結果是None則說明載入錯誤, 否則載入正確。


2、顯示影像cv2.imshow()


使用函式cv2.imshow() 顯示影像。視窗會自動調整為影像大小。第一個引數是視窗的名字,其次才是我們的影像。你可以建立多個視窗,只要你喜歡,但是必須給他們不同的名字。

cv2.imshow('image',img) #注意引數順序
cv2.waitKey(0) 
"""
cv2.waitKey() 是一個鍵盤繫結函式。需要指出的是它的時間尺度是毫
秒級。函式等待特定的幾毫秒,看是否有鍵盤輸入。特定的幾毫秒之內,如果
按下任意鍵,這個函式會返回按鍵的ASCII 碼值,程式將會繼續執行。如果沒
有鍵盤輸入,返回值為-1,如果我們設定這個函式的引數為0,那它將會無限
期的等待鍵盤輸入。它也可以被用來檢測特定鍵是否被按下,例如按鍵a 是否
被按下,這個後面我們會接著討論。
"""
cv2.destroyAllWindows()
"""
cv2.destroyAllWindows() 可以輕易刪除任何我們建立的視窗。如果
你想刪除特定的視窗可以使用cv2.destroyWindow(),在括號內輸入你想刪
除的視窗名。
"""

3、儲存影像cv2.imwrite()

cv2.imwrite('lena.png',img) #很簡單就可以生成一張圖片


相關文章