Python Opencv中基礎(chǔ)的知識點(diǎn)
OpenCV 是一個(gè)流行的開源計(jì)算機(jī)視覺庫,可用于不同的編程語言,例如 Python、C++ 和 JavaScript。它提供了一套豐富的工具來處理和分析圖像和視頻,讓你可以從調(diào)整單張圖片的大小到構(gòu)建復(fù)雜的對象識別應(yīng)用程序。
本文給大家介紹Python Opencv中基礎(chǔ)的知識點(diǎn)。
1.創(chuàng)建窗口
import cv2
import numpy as np
def createWindow():
#讀取圖片
img=cv2.imread('images/1 (1).jpg')
#創(chuàng)建窗口 flags=WINDOW_NORMAL表示可以改變窗口大小
cv2.namedWindow(winname='window',flags=cv2.WINDOW_NORMAL)
#縮放窗口的大小
cv2.resizeWindow(winname='window',width=300,height=200)
#顯示窗口
cv2.imshow('window',img)
#獲取鼠標(biāo)或者鍵值
key=cv2.waitKey(0)
if (key&0XFF==ord('Q')):
cv2.destroyAllWindows()
#銷毀所有的窗口
if __name__ == '__main__':
print('PyCharm')
createWindow()
2.保存圖片
import cv2
import numpy as np
def createWindow():
#讀取圖片
img=cv2.imread('images/1 (1).jpg')
#創(chuàng)建窗口 flags=WINDOW_NORMAL表示可以改變窗口大小
cv2.namedWindow(winname='window',flags=cv2.WINDOW_NORMAL)
#縮放窗口的大小
cv2.resizeWindow(winname='window',width=300,height=200)
while True:
#顯示窗口
cv2.imshow('window',img)
#獲取鼠標(biāo)或者鍵值
key=cv2.waitKey(0)
if (key&0XFF==ord('Q')):
break
elif (key&0xFF==ord('s')):
# 保存圖片
# name-保存的文件名 img-保存的圖片
cv2.imwrite('save_pic.png', img)
break
cv2.destroyAllWindows()
#銷毀所有的窗口
if __name__ == '__main__':
print('PyCharm')
createWindow()
3.采集視頻
import os
import cv2
import numpy as np
def CollectVideo():
#創(chuàng)建窗口
cv2.namedWindow(winname='window',flags=cv2.WINDOW_AUTOSIZE)
cv2.resizeWindow(winname='window',width=450,height=300)
#打開攝像頭
cap=cv2.VideoCapture(0)
fourcc = cv2.VideoWriter_fourcc(*'MJPG')
#獲取窗口大小
size = (int(cap.get(cv2.CAP_PROP_FRAME_WIDTH)), int(cap.get(cv2.CAP_PROP_FRAME_HEIGHT)))
# 輸出文件 多媒體文件格式 視頻幀率 分辨率大小
vw = cv2.VideoWriter('video.avi', fourcc, 25, size)
while cap.isOpened():
#從攝像頭讀取視頻幀
OK,frame=cap.read()
if OK:
#顯示攝像頭畫面
cv2.imshow('window',frame)
cv2.resizeWindow(winname='window', width=450, height=300)
#將從攝像頭采集的視頻幀寫入文件
vw.write(frame)
#從鼠標(biāo)和鍵盤獲取鍵值,按下ESC鍵退出
if cv2.waitKey(1)&0xFF==27:
break
#釋放資源
cap.release()
vw.release()
#銷毀所有的窗口
cv2.destroyAllWindows()
if __name__ == '__main__':
print('Pycharm')
CollectVideo()4.鼠標(biāo)控制
#回調(diào)函數(shù)參數(shù)解釋
#event:鼠標(biāo)移動(dòng),按下左鍵;
#(x,y):鼠標(biāo)坐標(biāo)
#flags:鼠標(biāo)鍵及組合鍵
import cv2
import numpy as np
#回調(diào)函數(shù)定義
def mouse_callback(event,x,y,flags,userdata):
print(event,x,y,flags,userdata)
#創(chuàng)建窗口
cv2.namedWindow(winname='mouse',flags=cv2.WINDOW_NORMAL)
cv2.resizeWindow(winname='mouse',width=450,height=300)
#給“mouse”窗口設(shè)置回調(diào)函數(shù)
cv2.setMouseCallback('mouse',mouse_callback,'123')
img=np.zeros(shape=(300,450,3),dtype=np.uint8)
while True:
cv2.imshow('mouse',img)
#按下ESC鍵退出
if cv2.waitKey(1)&0xFF==27:
break
cv2.destroyAllWindows()
if __name__ == '__main__':
print('pycharm')5.TrackBar組件
import os
import cv2
import numpy as np
cv2.namedWindow(winname='trackbar',flags=cv2.WINDOW_NORMAL)
cv2.resizeWindow(winname='trackbar',width=450,height=300)
#獲取TrackBar的值
def TrackBarValue():
#獲取窗口“window”下子窗口“R”的值
value_R= cv2.getTrackbarPos(trackbarname='R', winname='trackbar')
value_G = cv2.getTrackbarPos(trackbarname='G', winname='trackbar')
value_B = cv2.getTrackbarPos(trackbarname='B', winname='trackbar')
return value_R,value_G,value_B
def callback():
pass
#定義TrackBar函數(shù)
def TrackBarBGR():
#value-trackbar的值 count-設(shè)置的最大值count(最小值為0) OnChange-回調(diào)函數(shù)
cv2.createTrackbar('R','trackbar', 0, 255, callback)
cv2.createTrackbar('G','trackbar', 0, 255, callback)
cv2.createTrackbar('B','trackbar', 0, 255, callback)
img=np.zeros(shape=(450,300,3),dtype=np.uint8)
#創(chuàng)建trackbar組件
TrackBarBGR()
while True:
#獲取trackbar的值
R,G,B=TrackBarValue()
img[:]=[B,G,R]
#獲取值之后改變背景的顏色
cv2.imshow('trackbar', img)
#按下ESC鍵退出
if cv2.waitKey(1)&0xFF==27:
break
cv2.destroyAllWindows()
if __name__ == '__main__':
print('Pycharm')

到此這篇關(guān)于Python Opencv中基礎(chǔ)的知識點(diǎn)的文章就介紹到這了,更多相關(guān)Python Opencv基礎(chǔ)知識內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
django為Form生成的label標(biāo)簽添加class方式
這篇文章主要介紹了django為Form生成的label標(biāo)簽添加class方式,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-05-05
使用Python 正則匹配兩個(gè)特定字符之間的字符方法
今天小編就為大家分享一篇使用Python 正則匹配兩個(gè)特定字符之間的字符方法,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-12-12
Python 使用input同時(shí)輸入多個(gè)數(shù)的操作
這篇文章主要介紹了Python 使用input同時(shí)輸入多個(gè)數(shù)的操作,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-03-03
Python itertools庫高效迭代藝術(shù)實(shí)例探索
Python 中的?itertools?庫為迭代器操作提供了豐富的工具集,使得處理迭代對象變得更加高效和靈活,本篇文章將深入討itertools庫的常用方法,通過詳實(shí)的示例代碼演示其在解決各種問題中的應(yīng)用2024-01-01

