實(shí)時(shí)顯示攝像頭圖像
按下空格鍵,截取圖片
按下tab鍵,開(kāi)始錄制攝像內(nèi)容,再次按下,結(jié)束錄制?按下Esc鍵,關(guān)閉窗口
import cv2
import numpy
#第幾章圖片
img_count=0
InitVideo=False
#第幾個(gè)視頻
video_count=0
video_flag=False
#參數(shù)為0,表示打開(kāi)筆記本的內(nèi)置攝像頭
cameraCapture = cv2.VideoCapture(0)
w = cameraCapture.get(cv2.CAP_PROP_FRAME_WIDTH)
# 獲取視頻幀的高
h = cameraCapture.get(cv2.CAP_PROP_FRAME_HEIGHT)
# 獲取視頻幀的幀率
fps = cameraCapture.get(cv2.CAP_PROP_FPS)
# 獲取視頻流的總幀數(shù)
fcount = cameraCapture.get(cv2.CAP_PROP_FRAME_COUNT)
# 給窗口命名
cv2.namedWindow('MyWindow')
# 按幀讀取數(shù)據(jù)
success, frame = cameraCapture.read()
while success :
#鏡像顯示攝像頭圖像
mirroredFrame=numpy.fliplr(frame).copy()
cv2.imshow('MyWindow', mirroredFrame)
keycode=cv2.waitKey(1)
if keycode == 32:
cv2.imwrite('img'+str(img_count)+'.jpg', frame)
img_count=img_count+1
elif keycode == 27:
break
elif keycode == 9:
video_flag =not video_flag #這個(gè)參數(shù)控制是否開(kāi)始錄屏
InitVideo = True #這個(gè)參數(shù)來(lái)影響初始化視頻的次數(shù)
#關(guān)于錄屏
if video_flag == True:
if InitVideo == True:
# 初始化
writer = cv2.VideoWriter('out' + str(video_count) + '.avi', cv2.VideoWriter_fourcc('X', 'V', 'I', 'D'),
int(fps), (int(w), int(h)))
video_count = video_count + 1
InitVideo =False
writer.write(frame)
success, frame = cameraCapture.read()
cv2.destroyWindow('MyWindow')
cameraCapture.release()
writer.release()
cv2.destroyAllWindows()
截圖:?
可以添加函數(shù)來(lái)使圖像的顯示效果改變(邊緣檢測(cè)效果):
def strokeEdges(src,dst,blurKsize = 7,edgeKsize = 5):
# 模糊函數(shù),對(duì)去除數(shù)字化的視頻噪聲很有效,尤其是彩色圖像的噪聲
blurredSrc = cv2.medianBlur(src, blurKsize)
# 彩色圖轉(zhuǎn)灰度圖
graySrc = cv2.cvtColor(blurredSrc, cv2.COLOR_BGR2GRAY)
# 邊緣檢測(cè)函數(shù),會(huì)產(chǎn)生明顯的邊緣線條
cv2.Laplacian(graySrc, cv2.CV_8U, graySrc, edgeKsize)
# 黑轉(zhuǎn)白,白轉(zhuǎn)黑
normalizedInverseAlpha = (1.0 / 255) * (255 - graySrc)
# 重新恢復(fù)彩色,實(shí)現(xiàn)更清晰的輪廓圖
channels = cv2.split(src)
for channel in channels:
channel[:] = channel * normalizedInverseAlpha
cv2.merge(channels, dst)
自行在對(duì)應(yīng)的幀顯示處調(diào)用:
文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-625246.html
?文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-625246.html
到了這里,關(guān)于python+opencv實(shí)現(xiàn)顯示攝像頭,截取相關(guān)圖片,錄取相關(guān)視頻的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!