「python opencv 計算機視覺零基礎實戰」第一節

2020-12-23 1bit愛學習

前置條件

說明:本系列opencv實戰教程將從基礎到實戰,若只是簡單學習完python也可以通過該教程完成一般的機器學習編程;文中將會對很多python的基礎內容進行講解,但由於文章定位的原因將不會贅述過多的基礎內容,基礎內容進行第一次講解後第二次將不會過多贅述,本文主要講解的是opencv相關知識。

本文系統及環境:本文將在windows7作業系統下以python作為程式語言,完成對opencv的程序編寫。python版本是3.8。

一、學習目標

安裝opencv了解什麼是計算機視覺了解讀取圖片的方法了解顯示圖片的方法二、完成opencv的helloworld程序編寫

2.1 opencv是什麼

要了解opencv是什麼,首先可以看opencv的全稱——Open Source Computer Vision Library,翻譯過來為「開源的計算機系統識別庫」。那計算機視覺指的是什麼呢?

計算機視覺並不是指計算機可以去查看某些東西,這個說法太過片面,並不嚴謹;計算機視覺其實是研究如何讓計算機去代替人去觀察,並且進行一些目標上的處理。在opencv中,集成了很多方法,可以讓我們開發者很容易的完成某些視覺上的操作,完成某些目標;通過opencv,可以讓我們無需了解太多的算法知識,簡便的進行開發。

2.2 opencv可以做什麼

opencv應用廣泛,例如人臉識別、車牌識別、機器人、指紋、文字等,還可以對圖片信息進行方便的編輯,例如可以模糊圖片、檢測目標等;我們可以通過學習opencv可以做一個「檢測老闆面部自動切屏程序」、「類似於圖片摳圖等圖片操作的軟體」、「自動駕駛」等。

2.3 opencv的安裝

opencv的安裝很簡單,使用pip命令安裝即可。命令如下:

pip install opencv-python安裝完成後可以在cmd黑框框中進入python命令的交互界面,引入opencv即可知道是否已經安裝成功。步驟如下:首先輸入python進入python命令的交互界面:

隨後輸入命令import cv2,引入OpenCV庫:

若此時並未出錯,則說明opencv安裝正確。其中import表示引入,import cv2表示引入cv2這個模塊,cv2是模塊名;其中import的作用是引入。

2.4 opencv的helloworld

opencv的helloworld程序跟一般的helloworld程序不同,指讀取一張圖片並且顯示。我們打開自己的編輯器,我使用的編輯器是notepad。

opencv讀取圖片使用的是imread方法,在imread方法傳入一張圖片的路徑即可讀取到該圖片,但需要注意的是,在讀取圖片時,路徑不能出現中文、文件名最好是中文、在傳入時還需要注意斜杆會轉義,儘量的加r使文件路徑不轉義。查看以下示例:

img = cv2.imread(r'C:\Users\mx\Desktop\1.jpg')以上代碼讀取一張路徑為「C:\Users\mx\Desktop\1.jpg」的圖片,並且賦值給img變量,這是img則為改圖片對象。隨後顯示該變量內容需要先創建一個窗口,名為ImageShow,使用namedWindow方法。代碼如下:

cv2.namedWindow("Image")namedWindow接收2個參數,一個為窗口名稱,另一個為顯示方式;顯示方式包括cv.WINDOW_AUTOSIZE與*cv.WINDOW_NORMAL,默認情況下是cv.WINDOW_AUTOSIZE;默認情況下並不能改變窗口大小,若圖片太大,將會對查看造成一定的影響,使用cv.WINDOW_NORMAL則可以對窗口大小進行拖動更改,將會方便我們的查看。我們將以上代碼更改,代碼如下:

cv2.namedWindow("Image",cv.WINDOW_NORMAL)接下來我們將顯示圖像,使用imshow方法。代碼如下:

cv2.imshow("Image", img)imshow方法接收2個參數,第一個是我們需要在哪個窗口顯示的名稱,第二個是讀取後的圖片對象img。若在上一步中不創建窗口Image,在使用imshow方法時依舊可以直接顯示,此時將會創建一個當前所命名的窗口。接下來需要添加一個等待,防止程序運行完後自動關閉。代碼如下:

cv2.waitKey (0)接下來關掉窗口,調用destroyAllWindows方法,該方法將會銷毀所有創建的窗口:

cv2.destroyAllWindows()也可以使用destroyWindow方法銷毀指定的窗口,如下代碼:

cv2.destroyWindow("Image")以上完整的代碼如下:

import cv2img = cv2.imread(r'C:\Users\mx\Desktop\1.jpg')#讀取cv2.namedWindow("Image",cv2.WINDOW_NORMAL)#創建一個窗口cv2.imshow("Image", img)#顯示圖像cv2.waitKey (0)#等待關閉cv2.destroyAllWindows()#destroy運行代碼,將會出現圖片:

以上圖片左上角為title頭,是窗口名稱,並且改圖片可以拖動改變大小。我們更改imshow代碼,使其指定到一個未創建的窗口進行顯示:

import cv2img = cv2.imread(r'C:\Users\mx\Desktop\1.jpg')#讀取cv2.namedWindow("Image",cv2.WINDOW_NORMAL)#創建一個窗口cv2.imshow("Image1", img)#顯示圖像cv2.waitKey (0)#等待關閉cv2.destroyAllWindows()#destroy運行結果如下:

我們發現,這時創建了一個Image1窗口,該窗口顯示了該圖片內容,並且不能改動大小;我們使用namedWindow創建的Image窗口並沒有指定顯示內容,所以導致顯示內容無,但是可以自動改變大小,這時因為我們創建該窗口時傳入了cv2.WINDOW_NORMAL選擇了可自由改變大小。這時可通過這個小例子很好的對比cv2.WINDOW_NORMAL與cv2.WINDOW_AUTOSIZE的區別。

這時也可以改變代碼:

import cv2img = cv2.imread(r'C:\Users\mx\Desktop\1.jpg')#讀取cv2.namedWindow("Image",cv2.WINDOW_NORMAL)#創建一個窗口cv2.imshow("Image1", img)#顯示圖像cv2.destroyWindow("Image")cv2.waitKey (0)#等待關閉cv2.destroyAllWindows()#destroy以上代碼中在waitKey 之前使用了destroyWindow方法對無用的Image窗口進行了銷毀,運行時將會不再出現Image窗口。註:文章首發於ebaina,可點擊擴展連接了解

三、總結

了解了安裝opencv 的命令 pip install opencv-python了解計算機視覺是研究如何讓計算機去代替人去觀察,並且進行一些目標上的處理了解讀取圖片的方法imread了解顯示圖片的方法imshow了解窗口創建的多個模式WINDOW_NORMAL與WINDOW_AUTOSIZE了解了銷毀所有窗口的方法destroyAllWindows與銷毀指定窗口的方法destroyWindow

相關焦點

  • 「python opencv計算機視覺零基礎到實戰」九模糊
    一、學習目標了解什麼是卷積了解模糊的使用方法與應用目錄「python opencv 計算機視覺零基礎實戰」 第一節「python opencv視覺入門到實戰」二、格式與攝像頭「python opencv 視覺入門到實戰」 三、圖像編輯「python opencv視覺入門到實戰」 第四節色彩空間
  • 「python opencv視覺零基礎實戰」七邏輯運算應用
    一、學習目標了解opencv中圖像的邏輯運算了解opencv中邏輯運算的應用如有錯誤歡迎指出~目錄「python opencv 計算機視覺零基礎實戰」 第一節「python opencv視覺入門到實戰」二、格式與攝像頭「python opencv 視覺入門到實戰」 三、圖像編輯「python
  • 「python opencv視覺零到實戰」八、圖片選區操作
    一、學習目標了解什麼是ROI了解floodFill的使用方法如有錯誤歡迎指出~目錄「python opencv 計算機視覺零基礎實戰」 第一節「python opencv視覺入門到實戰」二、格式與攝像頭「python opencv 視覺入門到實戰」 三、圖像編輯「python opencv視覺入門到實戰
  • 14個案例實戰!入門計算機視覺OpenCV
    同濟子豪兄6節課帶你掌握OpenCV下拉文末,加入課程交流群 計算機視覺顧名思義就是讓計算機或者其他電子設備具有類似人類的視覺系統,可以通過採集的圖片或視頻進行處理,從而獲得場景或事物的三維信息,並進行識別判斷。
  • OpenCV 強大的開源計算機視覺庫
    計算機視覺是人工智慧的一個交叉領域,意圖賦予計算機和其它具有計算能力的電子設備高層次的對圖像和視頻的理解能力。
  • 世界上最好的語言PHP:OpenCV與計算機視覺已在我掌控之下
    本文從實踐的角度介紹了如何使用 PHP 與 OpenCV 構建人臉檢測、人臉識別、超解析度與目標檢測等系統,因此 PHP 的各位擁躉們,可以盡情使用 OpenCV 探索計算機視覺了。本文首發於公眾號機器之心(ID:almosthuman2014),部分代碼格式有誤可參閱原文章。
  • Python 圖像處理 OpenCV (1):入門
    /官方 Demo :https://github.com/opencv/opencv/blob/master/samples/python圖書推薦圖書的話我就推薦一本吧,如果要看書學習絕對不能錯過的「Learning OpenCV 3」,當然,是英文原版的,中文版的話翻譯有點慘不忍睹,對英文閱讀壓力大的同學可以中英文對照著看:
  • 【計算機視覺處理一】OpenCV入門
    OpenCV是一個跨平臺且開源的計算機視覺和機器學習庫,全稱Open Source Computer Vision Library 。由Intel公司開源。其中主體庫的代碼是Intel用C/C++編寫的,部分貢獻庫代碼由社區程式設計師提供。OpenCV不僅支持多個平臺,同時還提供了多種語言的接口,包括Java、Python、Ruby等。本次課程使用的Python語言。
  • 「Python+cv2」Python安裝opencv及圖像的基本操作
    Python環境opencv的安裝1、檢查是否安裝python環境3、安裝opencvpython環境下opencv的安裝:pip3 install opencv-pythonpython opencv安裝因為我已經安裝,所以會出現安裝位置的提示。
  • 面向Python的OpenCV輕鬆入門——第一章(1)
    第1章 OpenCV入門 Opencv是一個開源的計算機視覺庫,1990年由英特爾的 Gary Bradski啟動。Bradski在訪學過程中注意到,在很多優秀大學的實驗室中,都有非常完備的內部公開的計算機視覺接口。這些接口從一屆學生傳到另一屆學生,對於剛入門的新人來說,使用這些接口比重複造輪子方便多了。
  • 推薦一些相見恨晚的 Python 庫 「二」
    上一篇文章 推薦一些相見恨晚的 Python 庫 「一」對 Awesome Python 做了個簡單的介紹,同時匯總了一部分優秀的
  • 【視覺與圖像】Python+OpenCV教程入門篇
    要安裝OpenCV,只需cmd下的一條指令:pip install opencv-pythonpip是Python的包管理器,如果你還沒安裝Python,強烈推薦安裝Anaconda,它包含了大量的科學計算包,不用後期一個個安裝。即使你已經裝了Python也沒有影響,Anaconda相當於虛擬環境,互不幹擾。
  • 使用Python+OpenCV實現神經網絡預處理人臉圖像的快速指南
    目前我正在研究一個涉及人臉分類的計算機視覺問題。這通常意味著需要應用深度學習,因此在將圖像注入到我們的神經網絡之前需要一個特殊的預處理階段。為了提高我們的模型精度,這是一項非常重要的任務,通過以下幾個簡單的步驟可以很好地完成。對於本文,我們使用OpenCV:一個高度優化的計算機視覺開源庫,在C++、java和Python中都可用。
  • python利用opencv實現證件照換底
    opencv今天就給大家介紹一下python利用opencv庫進行藍底換紅底或者白底照片的操作。1.強大的opencv庫說到圖像處理,不得不提opencv庫。它是一個跨平臺的計算機視覺庫,可以運行在不同作業系統上,它由一些列c函數和少量c++函數組成,並提供python,matlab等語言的接口,實現了圖像處理和計算機視覺方面的很多通用算法。我們這裡用的opencv-python 就是opencv的python API接口。
  • OpenCV+Python計算機視覺導學——目錄匯總
    本文引用地址:http://www.eepw.com.cn/article/202007/415159.htmOpenCV是一個基於BSD許可(開源)發行的跨平臺計算機視覺和機器學習軟體庫,使用它,我們可以完成對數字圖像的一系列處理工作,從而進一步設計圖像識別類的運用,比如停車場的車牌號碼識別,馬路上的道路交通標識識別,物品識別,人臉識別等機器視覺領域
  • 使用Python+OpenCV進行圖像處理之入門教程
    什麼是OpenCVOpenCV是一個開源庫,包含了許多計算機視覺算法。它在計算機視覺和圖像處理中起著重要作用,用於實時操作,其效率足以滿足工業上的要求。OpenCV可以與其他庫一起使用,比如Numpy,這使得Python能夠處理OpenCV數組結構。
  • 如何快速簡單的安裝opencv-python
    這樣就會從清華鏡像安裝opencv-contrib-python庫。最新版本為4.1.1 ----2019-8-28在opencv-contrib-python 版本中含有額外模塊( Extra modules ),而 opencv-python 版本中只含有基礎模塊。
  • Python下opencv使用筆記(一:簡單操作與幾何變換)
    ,包括常見的圖像處理方法,濾波算法,等等,了解常見的操作,方便後續的進一步處理,這裡搬運過來,方便視覺領域的初學者可以參考。    上次分享了一個關於python下opencv的所有相關資料,詳細可參考下載:珍藏資料-學習OpenCV與計算機視覺-有這些就夠了1.
  • 獨家 | 如何為計算機視覺和深度學習安置英偉達?
    標籤:計算機視覺,深度學習之前我們討論了如何使用我的 pre-configured Nano .img file,那今天,你將學習從頭開始想學習如何安置你自己的Nano。本教程需要你有至少48小時的空餘時間完成你英偉達 Jetson Nano 的自主安置(是的,這就是這麼有挑戰)。
  • ​關於深度學習、NLP和計算機視覺的30個頂級Python庫
    圖1:用於深度學習、自然語言處理和計算機視覺的頂級Python庫由星級和貢獻者數量繪製;按提交的對數表示相對大小那麼,廢話少說,下面是就是由KDnuggets員工精心挑選出來,可用於深度學習、自然語言處理和計算機視覺的