iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 6
0
自我挑戰組

軟體開發隨筆雜記--試著解決問題系列 第 6

如何使用OpenCV 顯示視訊串流

顯示視訊串流基本要素為使用cv2.VideoCapture()打開視訊源,然後在視訊源打開的狀況下以frame讀出並用cv2.imshow()一張張的播放出來,以下為例,

def init_notebookpage_3(self):
    self.notebookpage_3_tab = tk.Frame(self.notebook2 )
    self.notebook2.add(self.notebookpage_3_tab, text="notebookpage_3")

在面板上我做一個tk.Button按鍵,title為'StreamOpenCV',command設為self.StreamOpenCV,按下就可執行功能。

    StreamOpenCVbutton = tk.Button(self.notebookpage_3_tab,                                                                font=('Courier', 7),                                                                    text = "StreamOpenCV",                                                                  command = self.StreamOpenCV)
    StreamOpenCVbutton.pack(side = tk.TOP, expand=tk.YES, fill=tk.BOTH)

https://ithelp.ithome.com.tw/upload/images/20200914/20119608X1Jel7pIeN.png

定義一個播放stream的函式StreamOpenCV,指定self.cap的視訊來源為cv2.VideoCapture(0)

def StreamOpenCV(self, event = None):
    self.cap = cv2.VideoCapture(0)

當self.cap.isOpened()的前提下,以frame儲存self.cap.read()來的資料,cv2.imshow播放frame

    while(self.cap.isOpened()):
         ret, frame = self.cap.read()
         cv2.imshow("StreamOpenCV", frame)

if c == 27: break表示等待按'Esc'跳出;

         c = cv2.waitKey(1)
         if c == 27: break
    self.cap.release()
    cv2.destroyAllWindows()

https://ithelp.ithome.com.tw/upload/images/20200914/20119608GPzXGs2pqv.png


上一篇
如何顯示圖片在Canvas物件上,做一個簡易繪畫工具
下一篇
如何顯示視訊串流在label物件上
系列文
軟體開發隨筆雜記--試著解決問題33
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言