python opencv呼叫筆記本攝像頭
阿新 • • 發佈:2020-01-09
通過檢視書籍,自己總結了一下,怎樣用python程式碼實現呼叫筆記本攝像頭的功能。
這主要是通過opencv中cv2模組來實現這個功能。其中是呼叫cv2中的函式,比如:imread()函式,imshow()函式等等....
以下是具體的實現程式碼:
1.通過視窗展示圖片:
import cv2 """ :param 無 :return 無 """"" # 讀取圖片 img = cv2.imread("index.jpeg",0) img2=cv2.imread("feifei.jpeg",0) # 顯示圖片,第一個引數是視窗名稱,第二個引數是圖片名字 cv2.imshow("image",img) #設定圖片視窗延遲,引數為0,鍵盤無限期的等待鍵入。 cv2.waitKey(0) #刪除所有新建的視窗 # cv2.destroyAllWinfdows() #刪除指定的視窗 cv2.destroyWindow("image")
圖片展示如下:
2.自定義圖片展示視窗,可以調整視窗的大小,針對圖片比較大的,可以適當調整。
#自定義圖片開啟視窗,大小可以調節 # 先自定義一個視窗,引數一是視窗名稱,引數2是可以調整視窗大小 cv2.namedWindow("image",cv2.WINDOW_NORMAL) # 顯示圖片 cv2.imshow("image",img) # 設定圖片視窗延遲 cv2.waitKey(0) # 設定關閉所有的圖片視窗 cv2.destroyAllWindows()
3.儲存圖片的功能
""" :param 無 :return 無 功能:通過s鍵,儲存圖片 """"" # 讀取圖片 img = cv2.imread("index.jpeg",0) # 通過視窗顯示圖片 cv2.imshow("image",img) # 設定圖片視窗顯示延遲 k = cv2.waitKey(0) if k == 27: # 27是代表esc鍵 cv2.destroyAllWindows() elif k == ord("s"): # 儲存圖片,新命名index2.jpg cv2.imwrite("index2.jpg",img) cv2.destroyAllWindows()
接下來是通過cv2中的VideoCapture()呼叫電腦的攝像功能。
具體實現程式碼如下:
""" :param 無 :return 無 功能:呼叫筆記本攝像頭獲取視訊圖片 """"" import numpy as np import cv2 #呼叫筆記本內建攝像頭,所以引數為0,如果有其他的攝像頭可以調整引數為1,2 cap=cv2.VideoCapture(0) while True: #從攝像頭讀取圖片 sucess,img=cap.read() #轉為灰度圖片 gray=cv2.cvtColor(img,cv2.COLOR_BGR2GRAY) #顯示攝像頭,背景是灰度。 cv2.imshow("img",gray) #保持畫面的持續。 k=cv2.waitKey(1) if k == 27: #通過esc鍵退出攝像 cv2.destroyAllWindows() break elif k==ord("s"): #通過s鍵儲存圖片,並退出。 cv2.imwrite("image2.jpg",img) cv2.destroyAllWindows() break #關閉攝像頭 cap.release()
攝像頭展示如下:
我們知道matplotlib是一個跟強大的繪圖軟體,當然在這裡也可以用matplotlib將圖片展示在座標中。
""" :param 無 :return 無 功能:使用matplotlib顯示圖片 """"" import numpy as np import cv2 from matplotlib import pyplot as plt #讀取圖片 img=cv2.imread("feifei.jpeg",0) #利用matplotlib顯示圖片 plt.imshow(img,cmap="gray",interpolation="bicubic") #設定x,y座標軸 plt.xticks([]),plt.yticks([]) #將圖片在座標中展示 plt.show()
以上的內容整理自《opencv官方教程中文版》。
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。