1. 程式人生 > 實用技巧 >1.opencv基礎

1.opencv基礎

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
uint8
In[2]:
video_demo()
cv.waitKey(1)
#如果沒下面的指令也會造成,在獲取鍵盤指令後,視窗無法完全關閉
cv.destroyAllWindows()#刪除建立的全部視窗,釋放資源