1.opencv基礎
In [1]:import cv2 as cv #讀出video #打開指定路徑下的視頻檔案:cap =cv2.VideoCapture(path) #讀取每一幀:flag,frame = cap.read(),打開視頻并讀取每一幀圖片,將視頻轉換為4維的矩陣 def video_demo(): cap=cv.VideoCapture(0) while(1): # get a frame ret, frame = cap.read()#frame是每一針 #視頻左右鏡像打開,引數是1 frame=cv.flip(frame,1) # show a frame cv.imshow("capture", frame) cv.waitKey(50) # c=cv.waitKey(10)#延時50ms,等待鍵盤輸入回傳對應的ASCII #if c==27: #其中27是ESC的意思,ASCII十進制的表示方法 if cv.waitKey(20)&0xFF == ord('q'): break #如果在輸入q后仍然無法中斷攝像頭,把cv.waitKey時間延長一點即可 #0xFF == ord('q')是鍵盤接收命令q時退出, #0xFF位掩碼是d對應十進制255,二進制1111 1111,只有后8位實際有效,為避免產干擾,通過 ‘與’ 操作將其余位置0, #ord('q'):回傳q對應的Unicode碼對應的值,q對應的Unicode數值為113,ord()是回傳字符對應的整數 #查看圖片資訊 def get_image_info(image): print(type(image)) print(image.shape) print(image.size) print(image.dtype) print("----hello----") #讀取圖片 src=cv.imread("aaa.png",cv.WINDOW_AUTOSIZE) #視窗名字 cv.namedWindow("picture1",0) #顯示圖片視窗 #如果名字是中文則檔案上要加上 # -*- coding=GBK -*- # 如果不加會報錯,如果加的是 # -*- coding: utf-8 -*-,雖然不會報錯,但會是亂碼 cv.imshow("picture1",src) # 創建視窗,其實不寫這行代碼也可以show出來,單位mshttp://localhost:8889/notebooks/%E5%93%94%E5%93%A9%E5%93%94%E5%93%A9%E6%B7%B1%E5%BA%A6%E5%AD%A6%E4%B9%A0/OPENCV/1.opencv%E5%9F%BA%E7%A1%80.ipynb# cv.waitKey(1000)#引數為0,就是視窗一直顯示 #關閉視窗 cv.destroyAllWindows()#洗掉建立的全部視窗,釋放資源 get_image_info(src) #保存圖片 cv.imwrite("./test1.png",src) #顯示灰度圖 gray=cv.cvtColor(src,cv.COLOR_BGR2GRAY) cv.namedWindow("picture2",0) cv.imshow("picture2",gray) cv.waitKey(5000) cv.destroyAllWindows()
----hello---- <class 'numpy.ndarray'> (96, 89, 3) 25632 uint8In [2]:
video_demo() cv.waitKey(1) #如果沒下面的指令也會造成,在獲取鍵盤指令后,視窗無法完全關閉 cv.destroyAllWindows()#洗掉建立的全部視窗,釋放資源<style></style> <style></style> <style></style> <style></style>
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/77627.html
標籤:Python
下一篇:接上一個帖子修改后報的更多錯誤
