利用python打开摄像头及颜色检测方法


Posted in Python onAugust 03, 2018

最近两周由于忙于个人项目,一直未发言了,实在是太荒凉了。。。。,上周由于项目,见到Python的应用极为广泛,用起来也特别顺手,于是小编也开始着手学习Python,…下面我就汇报下今天的学习成果吧

小编运行环境unbuntu 14.0.4

首先我们先安装一下Python呗,我用的2.7,其实特别简单,一行指令就OK

sudo apt-get install python-dev

一般安装系统的时候其实python已经自带了,这步基本可以不用做,OK,我们继续往下走吧,安装python-opencv ,稍后我们需要用到opencv的库,一行指令即可,这也是小编特别喜欢linux的原因:

sudo apt-get install python-opencv

完成之后我们开始操作吧,首先同样的我们打开摄像头露个脸呗,不多说,上代码, vim pythonpractice.py 打开vim,copy以下代码即可(友情提示 python是有严格的缩进的,下面我都是四个空格缩进,各位不要复制错了):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

小脸蛋即可出现在你的屏幕上了,下面稍微添加几行有意思的代码吧,实现蓝色背景检测,我这有瓶蓝色脉动,正好做个小实验。

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 运行一下,可以把手机换成蓝色背景检测以下,下面时间就交给各位理解了,代码很简单,只有简单的几行程序。

下面有个复杂点颜色识别的代码

#!/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) # 将轮廓分解为识别对象的左上角坐标和宽、高
  # 在图像上画上矩形(图片、左上角坐标、右下角坐标、颜色、线条宽度)
  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

小编只是想说明以下,一定要学以致用,任何一种编程语言都是倒腾两天就直接上手的,按部就班的学习语法,那样不知何时才能出师了,祝各位玩得high在机器视觉上

以上这篇利用python打开摄像头及颜色检测方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python实现倒计时的示例
Feb 14 Python
python中Apriori算法实现讲解
Dec 10 Python
几种实用的pythonic语法实例代码
Feb 24 Python
使用python进行拆分大文件的方法
Dec 10 Python
浅谈pandas筛选出表中满足另一个表所有条件的数据方法
Feb 08 Python
python基础梳理(一)(推荐)
Apr 06 Python
python把转列表为集合的方法
Jun 28 Python
浅谈python3中input输入的使用
Aug 02 Python
pandas数据选取:df[] df.loc[] df.iloc[] df.ix[] df.at[] df.iat[]
Apr 24 Python
python小白学习包管理器pip安装
Jun 09 Python
使用keras实现BiLSTM+CNN+CRF文字标记NER
Jun 29 Python
简单的命令查看安装的python版本号
Aug 28 Python
numpy添加新的维度:newaxis的方法
Aug 02 #Python
numpy.ndarray 交换多维数组(矩阵)的行/列方法
Aug 02 #Python
对numpy中的transpose和swapaxes函数详解
Aug 02 #Python
Numpy 改变数组维度的几种方法小结
Aug 02 #Python
python 字典中取值的两种方法小结
Aug 02 #Python
python 剪切移动文件的实现代码
Aug 02 #Python
pyspark.sql.DataFrame与pandas.DataFrame之间的相互转换实例
Aug 02 #Python
You might like
PHP 实现代码复用的一个方法 traits新特性
2015/02/22 PHP
PHP后台备份MySQL数据库的源码实例
2019/03/18 PHP
PhpStorm2020 + phpstudyV8 +XDebug的教程详解
2020/09/17 PHP
javascript实现焦点滚动图效果 具体方法
2013/06/24 Javascript
ff下JQuery无法监听input的keyup事件的解决方法
2013/12/12 Javascript
js利用事件的阻止冒泡实现点击空白模态框的隐藏
2014/01/24 Javascript
禁用Enter键表单自动提交实现代码
2014/05/22 Javascript
javascript 判断两个日期之差的示例代码
2015/09/05 Javascript
基于javascript代码检测访问网页的浏览器呈现引擎、平台、Windows操作系统、移动设备和游戏系统
2015/12/03 Javascript
基于javascript实现最简单选项卡切换
2017/02/01 Javascript
Easyui Tree获取当前选择节点的所有顶级父节点
2017/02/14 Javascript
vue 实现axios拦截、页面跳转和token 验证
2018/07/17 Javascript
vue中Axios的封装与API接口的管理详解
2018/08/09 Javascript
VuePress 快速踩坑小结
2019/02/14 Javascript
解决Vue.js应用回退或刷新界面时提示用户保存修改问题
2019/11/24 Javascript
JavaScript中this的学习笔记及用法整理
2020/02/17 Javascript
js+canvas实现纸牌游戏
2020/03/16 Javascript
Vue +WebSocket + WaveSurferJS 实现H5聊天对话交互的实例
2020/11/18 Vue.js
JS实现可以用键盘方向键控制的动画
2020/12/11 Javascript
Python函数中定义参数的四种方式
2014/11/30 Python
Python获取服务器信息的最简单实现方法
2015/03/05 Python
Python常用的内置序列结构(列表、元组、字典)学习笔记
2016/07/08 Python
详细介绍Python的鸭子类型
2016/09/12 Python
Python简单操作sqlite3的方法示例
2017/03/22 Python
TF-IDF算法解析与Python实现方法详解
2017/11/16 Python
Python将多个list合并为1个list的方法
2018/06/27 Python
Python实现九宫格式的朋友圈功能内附“马云”朋友圈
2019/05/07 Python
Python 多进程原理及实现
2020/12/21 Python
Myprotein法国官网:欧洲第一运动营养品牌
2019/03/26 全球购物
Myholidays美国:在线旅游网站
2019/08/16 全球购物
向领导表决心的话
2014/03/11 职场文书
《青蛙看海》教学反思
2014/04/23 职场文书
公司法定代表人授权委托书
2014/09/29 职场文书
乡镇干部个人对照检查材料思想汇报
2014/10/04 职场文书
关于环保的广播稿
2015/12/17 职场文书
Nginx设置HTTPS的方法步骤 443证书配置方法
2022/03/21 Servers