利用python打開攝像頭及顏色檢測方法
最近兩周由于忙于個(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í)特別簡單,一行指令就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)色背景檢測,我這有瓶藍(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)色背景檢測以下,下面時(shí)間就交給各位理解了,代碼很簡單,只有簡單的幾行程序。
下面有個(gè)復(fù)雜點(diǎn)顏色識別的代碼
#!/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) # 將輪廓分解為識別對象的左上角坐標(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打開攝像頭及顏色檢測方法就是小編分享給大家的全部內(nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
- python在linux中輸出帶顏色的文字的方法
- Python+matplotlib繪制不同大小和顏色散點(diǎn)圖實(shí)例
- Python通過PIL獲取圖片主要顏色并和顏色庫進(jìn)行對比的方法
- python獲取圖片顏色信息的方法
- python實(shí)現(xiàn)顏色rgb和hex相互轉(zhuǎn)換的函數(shù)
- 利用Python實(shí)現(xiàn)顏色色值轉(zhuǎn)換的小工具
- python opencv檢測目標(biāo)顏色的實(shí)例講解
- python中matplotlib的顏色及線條控制的示例
- Python實(shí)現(xiàn)PS圖像調(diào)整顏色梯度效果示例
- Python圖像處理之顏色的定義與使用分析
相關(guān)文章
matplotlib 向任意位置添加一個(gè)子圖(axes)
這篇文章主要介紹了matplotlib 向任意位置添加一個(gè)子圖(axes),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-04-04
Pycharm安裝報(bào)錯(cuò):Cannot detect a launch confi
本文主要介紹了Pycharm安裝報(bào)錯(cuò):Cannot detect a launch configuration解決辦法,具有一定的參考價(jià)值,感興趣的可以了解一下2025-03-03
Python中使用Selenium環(huán)境安裝的方法步驟
這篇文章主要介紹了Python中使用Selenium環(huán)境安裝的方法步驟,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-02-02
vscode中配置jupyter的詳細(xì)步驟(徹底解決Failed?to?start?the?Kernel問題)
自從vscode出了支持jupyter?notebook的功能之后,我就再也沒有傻傻的用瀏覽器開過jupyter(問就是vscode好看),下面這篇文章主要給大家介紹了關(guān)于vscode中配置jupyter(徹底解決Failed?to?start?the?Kernel問題)的相關(guān)資料,需要的朋友可以參考下2022-12-12

