python圖像識別精講之OpenCV模塊(1)

python圖像識別精講之OpenCV模塊(1)

寫在前面:

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

OpenCV用C++語言編寫,它的主要介面也是C++語言,但是依然保留了大量的C語言介面。該庫也有大量的Python、Java and MATLAB/OCTAVE(版本2.5)的介面。這些語言的API介面函數可以通過在線文檔獲得。如今也提供對於C#、Ch、Ruby的支持。

python作為一門高級語言,對於OpenCV的介面已經相對完善,由於作者近期在學習計算機視覺相關內容,便將這些學習過程中的一些心得與大家進行分享.


首先是OpenCV的安裝,我們就不過多贅述,教程很多,遇到問題的朋友可以私信我.


首先,想到視覺,我們第一時間想到的肯定是圖像,在計算機視覺庫中,當然是先對圖像進行簡單的讀取和處理是第一步,就像一般的python模塊一樣,我們首先了解的是他的讀取函數 : imread函數.要讀取某個圖像,就必須知道其路徑,在python中,首先拿到所要讀取的圖像的路徑,在文件的屬性中很容易得到他的路徑:

複製此路徑,在編輯器中先將opencv模塊導入,並且調用imread函數:

import numpyimport cv2img = cv2.imread(D:Python3.jpg)print(img)

對應調用以後,賦值給變數img

將他列印出來得到以下結果:

也許這時候有的朋友就會覺得奇怪了,明明都讀取了圖像,卻列印出一個None?!

其實這是一個很容易犯錯的地方,python的路徑並不支持單斜杠,我們應該在代碼中使用雙斜杠代替單斜杠,才能得到真正的結果.

至於為什麼會得到這麼多的二維數組,之後會與大家談及,這個函數最大的作用就是能夠以不同模式讀取圖片,在函數之後的參數中,設定了各個參數對應的功能.

在文檔中,第一個參數為文件路徑,第二個參數flags如果取值不一樣,對應的讀取的文件模式不一樣.基本的模式如下更多的特殊模式我們在後期會提及.

  • flags >0返回一個3通道的彩色圖像。
  • flags =0返回灰度圖像。
  • flags <0返回包含Alpha通道的載入的圖像。

今天的文章希望大家能夠理解並使用OpenCV中imread的作用並且將其應用

千里之行,始於足下,如果大家遇到了問題可以私信我

或者

添加我個人QQ:2533524298

推薦閱讀:

TAG:Python入門 | Python開發 | OpenCV |