案例實戰
1、簡易調色板
def ColorPalette():
# 簡易調色板
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、創建畫布,按下指定鍵畫指定圖案
def CaptureShape(img):
# 創建畫布,按下指定鍵畫指定圖案
cur_shape = 0
# 初始坐標
start_pos = (0,0)
def mouse_callback(event,x,y,flags,userdata):
nonlocal start_pos,cur_shape
# 鼠標按下
if event == cv2.EVENT_LBUTTONDOWN:
start_pos = (x,y)
# 鼠標松開
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、人臉檢測
def FaceDetect():
# 人臉檢測
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()
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。
舉報投訴
-
matlab
+關注
關注
182文章
2963瀏覽量
230155 -
開源
+關注
關注
3文章
3251瀏覽量
42402 -
OpenCV
+關注
關注
30文章
628瀏覽量
41264
發布評論請先 登錄
相關推薦
用morphologyEx進行圖像開運算_《OpenCV3編程入門》配套源代碼
《OpenCV3編程入門》書本配套源代碼:用morphologyEx進行圖像開運算
發表于 06-06 15:52
?11次下載
用morphologyEx進行圖像閉運算_《OpenCV3編程入門》配套源代碼
《OpenCV3編程入門》書本配套源代碼:用morphologyEx進行圖像閉運算
發表于 06-06 15:52
?3次下載
OpenCV入門之OpenCV的基本操作1
OpenCV是一個基于Apache2.0許可(開源)發行的跨平臺計算機視覺和機器學習軟件庫,可以運行在Linux、Windows、Android和Mac OS操作系統上。它輕量級而且高效——由一系列
OpenCV入門之OpenCV的基本操作2
OpenCV是一個基于Apache2.0許可(開源)發行的跨平臺計算機視覺和機器學習軟件庫,可以運行在Linux、Windows、Android和Mac OS操作系統上。它輕量級而且高效——由一系列
OpenCV入門之OpenCV的基本操作3
OpenCV是一個基于Apache2.0許可(開源)發行的跨平臺計算機視覺和機器學習軟件庫,可以運行在Linux、Windows、Android和Mac OS操作系統上。它輕量級而且高效——由一系列
OpenCV入門之OpenCV的基本操作4
OpenCV是一個基于Apache2.0許可(開源)發行的跨平臺計算機視覺和機器學習軟件庫,可以運行在Linux、Windows、Android和Mac OS操作系統上。它輕量級而且高效——由一系列
OpenCV入門之OpenCV的基本操作5
OpenCV是一個基于Apache2.0許可(開源)發行的跨平臺計算機視覺和機器學習軟件庫,可以運行在Linux、Windows、Android和Mac OS操作系統上。它輕量級而且高效——由一系列
評論