案例實(shí)戰(zhàn)
1、簡易調(diào)色板
def ColorPalette():
# 簡易調(diào)色板
def callback(value):
print(value)
# trackbar控件
cv2.namedWindow("trackbar",cv2.WINDOW_NORMAL)
cv2.resizeWindow("trackbar",640,480)
cv2.createTrackbar("R","trackbar",0,255,callback)
cv2.createTrackbar("G","trackbar",0,255,callback)
cv2.createTrackbar("B","trackbar",0,255,callback)
bg = np.zeros((480,640,3),np.uint8)
while True:
r = cv2.getTrackbarPos("R","trackbar")
g = cv2.getTrackbarPos("G", "trackbar")
b = cv2.getTrackbarPos("B", "trackbar")
bg[:] = [b,g,r]
cv2.imshow("trackbar",bg)
key = cv2.waitKey(20)
if key == 27:
break
cv2.destroyAllWindows()
# ColorPalette()
2、創(chuàng)建畫布,按下指定鍵畫指定圖案
def CaptureShape(img):
# 創(chuàng)建畫布,按下指定鍵畫指定圖案
cur_shape = 0
# 初始坐標(biāo)
start_pos = (0,0)
def mouse_callback(event,x,y,flags,userdata):
nonlocal start_pos,cur_shape
# 鼠標(biāo)按下
if event == cv2.EVENT_LBUTTONDOWN:
start_pos = (x,y)
# 鼠標(biāo)松開
elif event == cv2.EVENT_LBUTTONUP:
if cur_shape == 0:
cv2.line(img,start_pos,(x,y),(0,255,255),2)
elif cur_shape == 1:
cv2.rectangle(img,start_pos,(x,y),(255,0,255),2)
elif cur_shape==2:
a = (x-start_pos[0])
b = (y-start_pos[1])
r = int((a**2+b**2)**0.5)
cv2.circle(img,start_pos,r,(255,255,0),2)
else:
print("not support")
cv2.namedWindow('draw',cv2.WINDOW_NORMAL)
cv2.setMouseCallback('draw',mouse_callback)
while True:
# 按下l鍵畫直線,按下r鍵畫矩形,按下c鍵畫圓
cv2.imshow('draw',img)
key = cv2.waitKey(1)
if key == 27:
break
elif key == ord("l"):
cur_shape = 0
elif key == ord("r"):
cur_shape =1
elif key == ord("c"):
cur_shape =2
cv2.destroyAllWindows()
# img = np.zeros([500,500,3],np.uint8)
# CaptureShape(img)
3、人臉檢測(cè)
def FaceDetect():
# 人臉檢測(cè)
face_detector = cv2.CascadeClassifier("./haarcascade_frontalface_alt.xml")
while True:
cap = cv2.VideoCapture(0)
ret,frame = cap.read()
gray = cv2.cvtColor(frame,code=cv2.COLOR_BGR2GRAY)
face = face_detector.detectMultiScale(gray)
for x,y,w,h in face:
cv2.circle(frame,(x+w//2,y+h//2),w//2,(0,255,255),2)
cv2.imshow("img",frame)
key = cv2.waitKey(20)
if key == 27:
break
cap.release()
cv2.destroyAllWindows()
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。
舉報(bào)投訴
-
matlab
+關(guān)注
關(guān)注
185文章
2974瀏覽量
230385 -
開源
+關(guān)注
關(guān)注
3文章
3309瀏覽量
42473 -
OpenCV
+關(guān)注
關(guān)注
31文章
634瀏覽量
41338
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
創(chuàng)建包圍輪廓的圓形邊界_《OpenCV3編程入門》書本配套源代碼
《OpenCV3編程入門》書本配套源代碼:創(chuàng)建包圍輪廓的圓形邊界
發(fā)表于 06-06 15:39
?3次下載
用OpenCV進(jìn)行基本繪圖_《OpenCV3編程入門》書本配套源
《OpenCV3編程入門》書本配套源代碼:用OpenCV進(jìn)行基本繪圖
發(fā)表于 05-11 16:46
?36次下載
支持向量機(jī)之SVM引導(dǎo)_《OpenCV3編程入門》書本配套源代碼
《OpenCV3編程入門》書本配套源代碼:支持向量機(jī)之SVM引導(dǎo)
發(fā)表于 06-06 15:52
?2次下載
OpenCV入門之OpenCV的基本操作1
OpenCV是一個(gè)基于Apache2.0許可(開源)發(fā)行的跨平臺(tái)計(jì)算機(jī)視覺和機(jī)器學(xué)習(xí)軟件庫,可以運(yùn)行在Linux、Windows、Android和Mac OS操作系統(tǒng)上。它輕量級(jí)而且高效——由一系列
OpenCV入門之OpenCV的基本操作2
OpenCV是一個(gè)基于Apache2.0許可(開源)發(fā)行的跨平臺(tái)計(jì)算機(jī)視覺和機(jī)器學(xué)習(xí)軟件庫,可以運(yùn)行在Linux、Windows、Android和Mac OS操作系統(tǒng)上。它輕量級(jí)而且高效——由一系列
OpenCV入門之OpenCV的基本操作3
OpenCV是一個(gè)基于Apache2.0許可(開源)發(fā)行的跨平臺(tái)計(jì)算機(jī)視覺和機(jī)器學(xué)習(xí)軟件庫,可以運(yùn)行在Linux、Windows、Android和Mac OS操作系統(tǒng)上。它輕量級(jí)而且高效——由一系列
OpenCV入門之OpenCV的基本操作4
OpenCV是一個(gè)基于Apache2.0許可(開源)發(fā)行的跨平臺(tái)計(jì)算機(jī)視覺和機(jī)器學(xué)習(xí)軟件庫,可以運(yùn)行在Linux、Windows、Android和Mac OS操作系統(tǒng)上。它輕量級(jí)而且高效——由一系列
OpenCV入門之OpenCV的基本操作5
OpenCV是一個(gè)基于Apache2.0許可(開源)發(fā)行的跨平臺(tái)計(jì)算機(jī)視覺和機(jī)器學(xué)習(xí)軟件庫,可以運(yùn)行在Linux、Windows、Android和Mac OS操作系統(tǒng)上。它輕量級(jí)而且高效——由一系列
評(píng)論