国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

利用python打開攝像頭及顏色檢測方法

2020-02-15 22:38:40
字體:
來源:轉載
供稿:網友

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

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

首先我們先安裝一下Python唄,我用的2.7,其實特別簡單,一行指令就OK

sudo apt-get install python-dev

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

sudo apt-get install python-opencv

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

lmport cv2import 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'):    breakcap.release()cv2.destroyAllWindows()#釋放并銷毀窗口

保存退出

python pythonpractice.py

小臉蛋即可出現在你的屏幕上了,下面稍微添加幾行有意思的代碼吧,實現藍色背景檢測,我這有瓶藍色脈動,正好做個小實驗。

import cv2import numpy as npcap = cv2.VideoCapture(0)# set blue threshlower_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 運行一下,可以把手機換成藍色背景檢測以下,下面時間就交給各位理解了,代碼很簡單,只有簡單的幾行程序。

下面有個復雜點顏色識別的代碼

#!/usr/bin/python# -*- coding: utf-8 -*-import cv2import numpy as npimport timereadlower=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) # 將輪廓分解為識別對象的左上角坐標和寬、高  # 在圖像上畫上矩形(圖片、左上角坐標、右下角坐標、顏色、線條寬度)  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            
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 互助| 湟中县| 油尖旺区| 龙岩市| 修武县| 孝感市| 郸城县| 尼勒克县| 迭部县| 霍林郭勒市| 工布江达县| 湘乡市| 蕉岭县| 宜州市| 乌恰县| 杭锦旗| 万载县| 新野县| 绍兴市| 柏乡县| 陇西县| 江油市| 兰溪市| 汶川县| 莱芜市| 富平县| 吴江市| 赤城县| 四子王旗| 新河县| 香格里拉县| 崇礼县| 文安县| 五华县| 黄冈市| 正蓝旗| 万宁市| 陵川县| 米林县| 福鼎市| 麻城市|