打開攝像頭
import cv2
cap = cv2.VideoCapture(0)
while(cap.isOpened()):
# 擷取一幀
ret, frame = cap.read()
##圖像處理
frame1=cv2.flip(frame,1)
gray=cv2.cvtColor(frame1, cv2.COLOR_BGR2GRAY)
canny=cv2.Canny(gray,80,150)
##
cv2.imshow('frame', canny)
if cv2.waitKey(1) == ord('q'):
break
cap.release()
cv2.destroyAllWindows()
在攝像頭中加入灰階後如何顯示正常
import cv2
cap = cv2.VideoCapture(0)
while(cap.isOpened()):
# 擷取一幀
ret, frame = cap.read()
##圖像處理
frame1=cv2.flip(frame,1)
gray=cv2.cvtColor(frame1, cv2.COLOR_BGR2GRAY)
##
cv2.imshow('frame', canny)
if cv2.waitKey(1) == ord('q'):
break
cap.release()
cv2.destroyAllWindows()
我們一般第一步想到的就是加入cv2.cvrColor語句,但是加入後你會發現攝像頭隻會顯示你打開的那一瞬間的樣子。
他将拍攝到物品的邊緣顯示出來就停止了,我們可以加入一個邊緣檢測代碼,讓他一直檢測邊緣就可以讓攝像頭正常顯示。
import cv2
cap = cv2.VideoCapture(0)
while(cap.isOpened()):
# 擷取一幀
ret, frame = cap.read()
##圖像處理
frame1=cv2.flip(frame,1)
gray=cv2.cvtColor(frame1, cv2.COLOR_BGR2GRAY)
canny=cv2.Canny(gray,80,150)
##
cv2.imshow('frame', canny)
if cv2.waitKey(1) == ord('q'):
break
cap.release()
cv2.destroyAllWindows()
攝像頭美顔
先定義一個自己想要的特效後将特效導入攝像頭中即可
def meiyan(img):
rows, cols = img.shape[:2]
dst = np.zeros((rows, cols, 3), dtype="uint8")
#圖像懷舊特效
for i in range(rows):
for j in range(cols):
B = 0.272*img[i,j][2] + 0.534*img[i,j][1] + 0.131*img[i,j][0]
G = 0.349*img[i,j][2] + 0.686*img[i,j][1] + 0.168*img[i,j][0]
R = 0.393*img[i,j][2] + 0.769*img[i,j][1] + 0.189*img[i,j][0]
if B>255:
B = 255
if G>255:
G = 255
if R>255:
R = 255
dst[i,j] = np.uint8((B, G, R))
return dst
import cv2
import numpy as np
cap = cv2.VideoCapture(0)
width, height = cap.get(3), cap.get(4)
while(cap.isOpened()):
ret, frame = cap.read()
frame = meiyan(frame)
cv2.imshow('frame', frame)
if cv2.waitKey(1) == ord('q'):
break
cap.release()
cv2.destroyAllWindows()
案例@ Fu Xianjun. All Rights Reserved.