小白级OpenCV入门
如今科技發展迅速,很多領域都涉及到“計算機視覺”這個細分領域。簡單的說,就是將圖像信息轉化為計算機可以處理的數字信息,從而讓計算機可以看得見,本文就介紹一下純小白的opencv入門技巧。
OpenCV入門
# 安裝: # OpenCV 的安裝依賴 numpy 庫,在安裝之前確保已經安裝好了 numpy 庫。 pip install opencv-pythonPython中的opencv安裝僅需一行代碼就搞定了,opencv是C++寫的代碼,python中調用cv2模塊中的方法就可以了。
圖片讀取
準備就緒后,就可以開始學習了,既然是為了讓計算機可以看得見,那么首先介紹一下如何來讀取圖片。需要注意的一點是cv2讀取圖片路徑中,不能包含中文,否則讀取不出來。從網上下載張圖片放在程序同目錄下,開始讀取。
import?cv2dog = cv2.imread('dog.jpg') # 小編比較喜歡小狗# 顯示圖片 cv2.imshow('dog', dog)# 等待鍵盤輸入時中斷,單位是毫秒,如果是0,無限等待 cv2.waitKey(0)# 由于opencv是有C++編寫的,所以程序結束后要釋放一下 cv2.destroyAllWindows()轉灰度圖
利用 dog.shape 函數可以看到數據形狀,彩色圖片是三維的,在很多操作時數據量大,不便于操作,經常會轉換成灰度圖像。
其他常用操作
調整圖片規格
存儲圖片
鍵盤中斷退出
人臉識別
人臉識別,是基于人的臉部特征信息進行身份識別的一種生物識別技術。這就需要訓練數據來識別人臉,不過GitHub上已經有一些訓練好的訓練數據了,可以直接下載。直接GitHub上搜索opencv,找星標?最多的那個,C++編寫的。里面有各種訓練好的數據集,我們這次用到的數據,直接給出鏈接。
https://github.com/opencv/opencv/tree/master/data/haarcascades
import?numpy as?np import?cv2pic = cv2.imread('./nba.jpg')# 人臉數據,級聯分類器,給人臉特征數據,返回可以識別人臉的對象 detector = cv2.CascadeClassifier('./haarcascade_frontalface_default.xml')# 轉換成灰度 gray = cv2.cvtColor(pic, code=cv2.COLOR_BGR2GRAY)# 使用訓練好的識別人臉對象來識別人臉區域 face_zone = detector.detectMultiScale(gray, scaleFactor=1.1, minNeighbors=3) #?后兩個參數就是默認值,可以修改來調整識別人臉的精確度for?x, y, w, h in?face_zone:# 在人臉上畫一個正方形,畫正方形只需要知道左上角和右下角坐標即可cv2.rectangle(pic, pt1=(x, y), pt2=(x+w, y+h), color=[0, 255, 0], thickness=2)# 在人臉上畫圈,需要圓的圓心坐標和半徑cv2.circle(pic, center=(x+w//2, y+h//2), radius=w//2, color=[0, 0, 255], thickness=2)# 使用灰度圖檢測,繪制在彩色圖片上 cv2.imshow('pic', pic) cv2.waitKey(0) cv2.destroyAllWindows()是不是很簡單的幾步就實現了,顯然,有些誤差,但是效果已經很明顯了,想要獲得更好的結果可以調整參數,或者自己再訓練數據。
視頻處理
使用opencv來處理視頻之前,首先應該了解視頻是怎么來的。簡單的說視頻就是有很多張圖片構成(這里忽略了音頻,音頻是由二維數據組成,左聲道和右聲道,有機會以后再說)。
中間步驟解析:
完
來和小伙伴們一起向上生長呀!
掃描下方二維碼,添加小詹微信,可領取千元大禮包并申請加入 Python 學習交流群,群內僅供學術交流,日常互動,如果是想發推文、廣告、砍價小程序的敬請繞道!一定記得備注「交流學習」,我會盡快通過好友申請哦!
????長按識別,添加微信
(添加人數較多,請耐心等待)
????長按識別,關注小詹
(掃碼回復 1024 領取程序員大禮包)
總結
以上是生活随笔為你收集整理的小白级OpenCV入门的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 别总写代码,这100多个相见恨晚的网站比
- 下一篇: 为了追到小姐姐,我用 Python 制作