1.opencv基礎

来源:https://www.cnblogs.com/AI-robort/archive/2020/07/25/13377798.html
-Advertisement-
Play Games

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