1. 程式人生 > 程式設計 >python opencv呼叫筆記本攝像頭

python opencv呼叫筆記本攝像頭

通過檢視書籍,自己總結了一下,怎樣用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官方教程中文版》。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。