python實現(xiàn)從本地攝像頭和網(wǎng)絡(luò)攝像頭截取圖片功能
python-----從本地攝像頭和網(wǎng)絡(luò)攝像頭截取圖片 ,具體代碼如下所示:
import cv2 # 獲取本地攝像頭 # folder_path 截取圖片的存儲目錄 def get_img_from_camera_local(folder_path): cap = cv2.VideoCapture(0) i = 1 while True: ret, frame = cap.read() cv2.imshow("capture", frame) print str(i) cv2.imwrite(folder_path + str(i) + '.jpg', frame) # 存儲為圖像 if cv2.waitKey(1) & 0xFF == ord('q'): break i += 1 cap.release() cv2.destroyAllWindows() # 獲取網(wǎng)絡(luò)攝像頭,格式:rtsp://username:pwd@ip/ # folder_path 截取圖片的存儲目錄 def get_img_from_camera_net(folder_path): cap = cv2.VideoCapture('rtsp://username:pwd@ip/') i = 1 while True: ret, frame = cap.read() cv2.imshow("capture", frame) print str(i) cv2.imwrite(folder_path + str(i) + '.jpg', frame) # 存儲為圖像 if cv2.waitKey(1) & 0xFF == ord('q'): break i += 1 cap.release() cv2.destroyAllWindows() # 測試 if __name__ == '__main__': folder_path = 'D:\\img_from_camera\\' get_img_from_camera_local(folder_path)
PS:下面看下用 python , opencv 打開網(wǎng)絡(luò)攝像頭讀取圖像
打開網(wǎng)絡(luò)攝像頭用如下代碼:
########################################### import cv2 url = 'rtsp://admin:password@192.168.1.104:554/11' cap = cv2.VideoCapture(url) while(cap.isOpened()): # Capture frame-by-frame ret, frame = cap.read() # Display the resulting frame cv2.imshow('frame',frame) if cv2.waitKey(1) & 0xFF == ord('q'): break # When everything done, release the capture cap.release() cv2.destroyAllWindows() ############################################
注: 將從攝像頭獲取的圖像從bgr轉(zhuǎn)為rgb : image = cv2.cvtColor(image, cv2.COLOR_BGR2RGB)
1、cap = cv2.VideoCapture(0)
VideoCapture()中參數(shù)是0,表示打開筆記本的內(nèi)置攝像頭,參數(shù)是1,表示打開usb攝像頭,
參數(shù)是視頻文件路徑則打開視頻,如cap = cv2.VideoCapture("../test.avi")
2、ret,frame = cap.read()
cap.read()按幀讀取視頻,ret,frame是獲cap.read()方法的兩個返回值。其中ret是布爾值,如果讀取幀是正確的則返回True,如果文件讀取到結(jié)尾,它的返回值就為False。frame就是每一幀的圖像,是個三維矩陣。
3、cv2.waitKey(1),waitKey()方法本身表示等待鍵盤輸入,
參數(shù)是1,表示延時1ms切換到下一幀圖像,對于視頻而言;
參數(shù)為0,如cv2.waitKey(0)只顯示當(dāng)前幀圖像,相當(dāng)于視頻暫停,;
參數(shù)過大如cv2.waitKey(1000),會因為延時過久而卡頓感覺到卡頓。
c得到的是鍵盤輸入的ASCII碼,esc鍵對應(yīng)的ASCII碼是27,即當(dāng)按esc鍵是if條件句成立
4、調(diào)用release()釋放攝像頭,調(diào)用destroyAllWindows()關(guān)閉所有圖像窗口。
總結(jié)
以上所述是小編給大家介紹的python實現(xiàn)從本地攝像頭和網(wǎng)絡(luò)攝像頭截取圖片功能,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
如果你覺得本文對你有幫助,歡迎轉(zhuǎn)載,煩請注明出處,謝謝!
- 用Python獲取攝像頭并實時控制人臉的實現(xiàn)示例
- OpenCV-Python 攝像頭實時檢測人臉代碼實例
- Python3利用Dlib實現(xiàn)攝像頭實時人臉檢測和平鋪顯示示例
- python版opencv攝像頭人臉實時檢測方法
- Python+OpenCV圖像處理——打印圖片屬性、設(shè)置存儲路徑、調(diào)用攝像頭
- 教你如何用python操作攝像頭以及對視頻流的處理
- python使用opencv在Windows下調(diào)用攝像頭實現(xiàn)解析
- 樹莓派4B+opencv4+python 打開攝像頭的實現(xiàn)方法
- python opencv捕獲攝像頭并顯示內(nèi)容的實現(xiàn)
- python 實時調(diào)取攝像頭的示例代碼
相關(guān)文章
python smtplib模塊自動收發(fā)郵件功能(二)
這篇文章主要為大家詳細(xì)介紹了python smtplib模塊自動收發(fā)郵件功能的第二篇,具有一定的參考價值,感興趣的小伙伴們可以參考一下2018-05-05python中的信號通信 blinker的使用小結(jié)
信號是一種通知或者說通信的方式,信號分為發(fā)送方和接收方,信號的特點就是發(fā)送端通知訂閱者發(fā)生了什么,今天通過本文給大家介紹python中的信號通信 blinker的相關(guān)知識,感興趣的朋友一起看看吧2021-10-10Python實現(xiàn)在不同坐標(biāo)系中繪制曲線
這篇文章主要為大家學(xué)習(xí)介紹了Python如何實現(xiàn)在不同坐標(biāo)系中繪制曲線,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起了解一下2023-07-07