1. 程式人生 > >影象處理行業專業級類庫OpenCV

影象處理行業專業級類庫OpenCV

前言

最近要通過opencv來進行人臉識別,不得不多學習學習opencv方面的知識,處理影象的類庫有很多,在python下操作主要有3種,OpenCV、Skimage(基本不用)和PIL,用的比較多的是PIL和OpenCV,而PIL是Python中最基礎的影象處理庫,opencv是非常強大的專門處理圖片的高效能類庫,包含了超過2500 個演算法和函式,幾乎任何一個能想到的成熟演算法都可以通過呼叫OpenCV 的函式來實現,超級方便。OpenCV安裝點選這裡

主要方法

  • 讀取 cv2.imread()
  • 顯示 cv2.imshow()
  • 縮放 cv2.resize([,])
  • 生成 cv2.imwrite()
    點選cv2可以看到;
    這裡寫圖片描述

    當然不僅僅只有這幾個,還有很多很多。

程式實現

###################################################################
# -*- coding:utf8 -*-
# created by tengxing on 2017.5.18
# mail [email protected]
# github github.com/tengxing
# description opencv讀取,縮放,生成圖片
####################################################################
import cv2 filename = "test.jpg" ##read image img = cv2.imread(filename=filename) print "height:%spx"%img.shape[0] # out: width:978px print type(img) # out: <type 'numpy.ndarray'> print img.size # out: 5304672 print img #[[[ 4 4 4] # .... # [ 4 4 4]]] ## show image image = cv2.imshow(winname="image"
,mat=img) cv2.waitKey(0) """ cv2.waitKey() 是一個鍵盤繫結函式。函式等待特定的幾毫秒,看是否有鍵盤輸入。特定的幾毫秒之內,如果 按下任意鍵,這個函式會返回按鍵的ASCII 碼值,程式將會繼續執行。如果沒 有鍵盤輸入,返回值為-1,如果我們設定這個函式的引數為0,那它將會無限 期的等待鍵盤輸入。 """ cv2.destroyWindow(image) """ cv2.destroyAllWindows() 可以輕易刪除任何我們建立的視窗。如果 你想刪除特定的視窗可以使用cv2.destroyWindow(),在括號內輸入你想刪 除的視窗名。 """ ## resize image img = cv2.resize(img,(200,100),interpolation=None) """ interplolation為縮放時的插值方式,有三種插值方式: cv2.INTER_AREA:使用象素關係重取樣。當影象縮小時候,該方法可以避免波紋出現。當影象放大時,類似於 CV_INTER_NN方法     cv2.INTER_CUBIC: 立方插值 cv2.INTER_LINEAR: 雙線形插值  cv2.INTER_NN: 最近鄰插值 """ print img.shape # out: (100, 200, 3) ## rewrite image cv2.imwrite('out.png',img)

結束語

我只想說,用opencv處理圖片確實很方便,並且opencv一直是圖片處理方向的領導型工具庫,值得一試。當然,本篇部落格中,我不得不說,顯示圖片有跟友好的庫 matpoltlib ,用來繪製圖表,顯示圖片。

參考文章