Python CV2的基本操作

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) 
  1. img: 圖像
  2. text:要輸出的文本
  3. org: 文字的起點(diǎn)坐標(biāo) 第一個是寬 第二個是高 以左上角為參考
  4. fontFace: 字體
  5. fontScale: 字體大小
  6. color: 字體顏色
  7. 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

基本繪圖

參考:https://blog.csdn.net/jnulzl/article/details/47056937

===============================接下來是視頻操作

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()

釋放攝像頭的資源

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容