Python CV2的基本操作
cv2.imread(filepath,flags)
filepath:要讀入圖片的完整路徑
flags:讀入圖片的標(biāo)志
- cv2.IMREAD_COLOR:默認(rèn)參數(shù),讀入一副彩色圖片,忽略alpha通道
- cv2.IMREAD_GRAYSCALE:讀入灰度圖片
- cv2.IMREAD_UNCHANGED:顧名思義,讀入完整圖片,包括alpha通道
返回值是一個numpy對象
cv2.namedWindow(窗口名,屬性)
窗口名是一個字符串,屬性包括
cv2.WINDOW_AUTOSIZE:根據(jù)圖像大小自動創(chuàng)建大小
cv2.WINDOW_NORMAL:窗口大小可調(diào)整
cv2.imshow(wname,img) 展示圖片
第一個參數(shù)是顯示圖像的窗口的名字
第二個參數(shù)是要顯示的圖像(imread讀入的圖像),窗口大小自動調(diào)整為圖片大小。
cv2.imwrite保存圖片
使用函數(shù)cv2.imwrite(file,img,num)保存一個圖像。
第一個參數(shù)是要保存的文件名,
第二個參數(shù)是要保存的圖像。
可選的第三個參數(shù),它針對特定的格式:對于JPEG,其表示的是圖像的質(zhì)量,用0 - 100的整數(shù)表示,默認(rèn)95;對于png ,第三個參數(shù)表示的是壓縮級別,默認(rèn)為3。
- cv2.IMWRITE_JPEG_QUALITY類型為 long ,必須轉(zhuǎn)換成 int
- cv2.IMWRITE_PNG_COMPRESSION, 從0到9 壓縮級別越高圖像越小
cv2.imwrite('1.png',img, [int( cv2.IMWRITE_JPEG_QUALITY), 95]) cv2.imwrite('1.png',img, [int(cv2.IMWRITE_PNG_COMPRESSION), 9])
cv2.flip 翻轉(zhuǎn)圖片
使用函數(shù)cv2.flip(img,flipcode)翻轉(zhuǎn)圖像,flipcode控制翻轉(zhuǎn)效果。
- flipcode = 0:沿x軸翻轉(zhuǎn)
- flipcode > 0:沿y軸翻轉(zhuǎn)
- flipcode < 0:x,y軸同時翻轉(zhuǎn)
cv2.putText 在圖像上輸出文字
putText(img, text, org, fontFace, fontScale, color, thickness=None, lineType=None, bottomLeftOrigin=None)
- img: 圖像
- text:要輸出的文本
- org: 文字的起點(diǎn)坐標(biāo) 第一個是寬 第二個是高 以左上角為參考
- fontFace: 字體
- fontScale: 字體大小
- color: 字體顏色
- thickness: 字圖加粗
import cv2 img = cv2.imread("01.jpg") cv2.putText(img,"Print some text to img",(100,100),cv2.FONT_HERSHEY_SIMPLEX,1,(0,0,255)) cv2.imshow("img",img) cv2.waitKey()image.png
基本繪圖
===============================接下來是視頻操作
cv2.VideoCapture獲取攝像頭
VideoCapture()中參數(shù)是0,表示打開筆記本的內(nèi)置攝像頭,
參數(shù)是視頻文件路徑則打開視頻,如cap = cv2.VideoCapture("../test.avi")
cap.isOpened()函數(shù)
返回true表示成功,false表示不成功
cap.read()
#正常使用 ret,frame = cap.read()cap.read()按幀讀取視頻,ret,frame是獲cap.read()方法的兩個返回值。
其中
ret是布爾值,如果讀取幀是正確的則返回True,如果文件讀取到結(jié)尾,它的返回值就為False。
frame就是每一幀的圖像,是個三維矩陣。
cv2.waitKey(1)
#正確使用 c = cv2.waitKey(1)表示等待鍵盤輸入
參數(shù)是1,表示延時1ms切換到下一幀圖像,對于視頻而言;沒有按鍵返回-1
參數(shù)為0,如cv2.waitKey(0)只顯示當(dāng)前幀圖像,相當(dāng)于視頻暫停,;
參數(shù)過大如cv2.waitKey(1000),會因?yàn)檠訒r過久而卡頓感覺到卡頓。
c得到的是鍵盤輸入的ASCII碼,esc鍵對應(yīng)的ASCII碼是27
ord() 函數(shù) 返回對應(yīng)的 ASCII 數(shù)值
cap.release()
釋放攝像頭的資源
