1.opencv基礎 In [1]: import cv2 as cv #讀出video #打開指定路徑下的視頻文件:cap =cv2.VideoCapture(path) #讀取每一幀:flag,frame = cap.read(),打開視頻並讀取每一幀圖片,將視頻轉換為4維的矩陣 def vid ...
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()#刪除建立的全部視窗,釋放資源