亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

利用python打開攝像頭及顏色檢測(cè)方法

 更新時(shí)間:2018年08月03日 08:39:38   作者:xiao__run  
今天小編就為大家分享一篇利用python打開攝像頭及顏色檢測(cè)方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧

最近兩周由于忙于個(gè)人項(xiàng)目,一直未發(fā)言了,實(shí)在是太荒涼了。。。。,上周由于項(xiàng)目,見到Python的應(yīng)用極為廣泛,用起來也特別順手,于是小編也開始著手學(xué)習(xí)Python,…下面我就匯報(bào)下今天的學(xué)習(xí)成果吧

小編運(yùn)行環(huán)境unbuntu 14.0.4

首先我們先安裝一下Python唄,我用的2.7,其實(shí)特別簡(jiǎn)單,一行指令就OK

sudo apt-get install python-dev

一般安裝系統(tǒng)的時(shí)候其實(shí)python已經(jīng)自帶了,這步基本可以不用做,OK,我們繼續(xù)往下走吧,安裝python-opencv ,稍后我們需要用到opencv的庫,一行指令即可,這也是小編特別喜歡linux的原因:

sudo apt-get install python-opencv

完成之后我們開始操作吧,首先同樣的我們打開攝像頭露個(gè)臉唄,不多說,上代碼, vim pythonpractice.py 打開vim,copy以下代碼即可(友情提示 python是有嚴(yán)格的縮進(jìn)的,下面我都是四個(gè)空格縮進(jìn),各位不要復(fù)制錯(cuò)了):lo

lmport cv2
import numpy as np#添加模塊和矩陣模塊
cap=cv2.VideoCapture(0)
#打開攝像頭,若打開本地視頻,同opencv一樣,只需將0換成("×××.avi")
while(1): # get a frame 
 ret, frame = cap.read() # show a frame 
 cv2.imshow("capture", frame) 
 if cv2.waitKey(1) & 0xFF == ord('q'):  
  break
cap.release()
cv2.destroyAllWindows()
#釋放并銷毀窗口

保存退出

python pythonpractice.py

小臉蛋即可出現(xiàn)在你的屏幕上了,下面稍微添加幾行有意思的代碼吧,實(shí)現(xiàn)藍(lán)色背景檢測(cè),我這有瓶藍(lán)色脈動(dòng),正好做個(gè)小實(shí)驗(yàn)。

import cv2
import numpy as np
cap = cv2.VideoCapture(0)# set blue thresh
lower_blue=np.array([78,43,46])
upper_blue=np.array([110,255,255])
while(1): # get a frame and show 
 ret, frame = cap.read() 
 cv2.imshow('Capture', frame) # change to hsv model 
 hsv = cv2.cvtColor(frame, cv2.COLOR_BGR2HSV) # get mask 
 mask = cv2.inRange(hsv, lower_blue, upper_blue) 
 cv2.imshow('Mask', mask) # detect blue 
 res = cv2.bitwise_and(frame, frame, mask=mask) 
 cv2.imshow('Result', res) 
 if cv2.waitKey(1) & 0xFF == ord('q'):  
  breakcap.release()
cv2.destroyAllWindows()

同樣python pythonpractice.py 運(yùn)行一下,可以把手機(jī)換成藍(lán)色背景檢測(cè)以下,下面時(shí)間就交給各位理解了,代碼很簡(jiǎn)單,只有簡(jiǎn)單的幾行程序。

下面有個(gè)復(fù)雜點(diǎn)顏色識(shí)別的代碼

#!/usr/bin/python
# -*- coding: utf-8 -*-
import cv2
import numpy as np
import time
readlower=np.array([156,179,144])
readupper=np.array([180,255,255])
readlower1 = np.array([0, 128, 146])
readupper2 = np.array([5, 255, 255])
lowerarry=[[readlower,readupper,'red'],[readlower1,readupper2,'red1']]
capture=cv2.VideoCapture('4.mp4')
while True:
 ret,frame=capture.read()
 print frame.shape
 frame=cv2.resize(frame,(640,480))
 if ret==False:
  print("video is erro")
 #cv2.imshow('xiaorun',frame)
 hsv=cv2.cvtColor(frame,cv2.COLOR_BGR2HSV)
 for colormin,colermax,name in lowerarry:
  mask=cv2.inRange(hsv,colormin,colermax)
  #res = cv2.bitwise_and(frame, frame, mask=mask)
 #mask=cv2.erode(mask,None,iterations=1)
 mask=cv2.dilate(mask,None,iterations=25)
 ret, binary = cv2.threshold(mask,15, 255, cv2.THRESH_BINARY)
 cv2.imshow('result',binary)
 kernel = cv2.getStructuringElement(cv2.MORPH_RECT, (21, 7))
 closed = cv2.morphologyEx(binary, cv2.MORPH_CLOSE, kernel)
 cv2.imshow('closed', closed)
 #erode = cv2.erode(closed, None, iterations=4)
 #cv2.imshow('erode', erode)
 dilate = cv2.dilate(closed, None, iterations=50)
 cv2.imshow('dilate', dilate)
 _,contours, hierarchy = cv2.findContours(binary, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
 #res=_.copy()
 for con in contours:
  x, y, w, h = cv2.boundingRect(con) # 將輪廓分解為識(shí)別對(duì)象的左上角坐標(biāo)和寬、高
  # 在圖像上畫上矩形(圖片、左上角坐標(biāo)、右下角坐標(biāo)、顏色、線條寬度)
  cv2.rectangle(frame, (x, y), (x + w, y + h), (255, 0,0), 3)

 cv2.imshow('res',frame)
 key=cv2.waitKey(1)
 if key==ord('q'):
  break

小編只是想說明以下,一定要學(xué)以致用,任何一種編程語言都是倒騰兩天就直接上手的,按部就班的學(xué)習(xí)語法,那樣不知何時(shí)才能出師了,祝各位玩得high在機(jī)器視覺上

以上這篇利用python打開攝像頭及顏色檢測(cè)方法就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

最新評(píng)論