利用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 urlopen 使用小示例
Sep 06 Python
Python 面向对象 成员的访问约束
Dec 23 Python
Python使用回溯法子集树模板解决迷宫问题示例
Sep 01 Python
Python制作豆瓣图片的爬虫
Dec 28 Python
Python使用matplotlib绘制余弦的散点图示例
Mar 14 Python
Python3实现的Mysql数据库操作封装类
Jun 06 Python
Python3爬虫学习之应对网站反爬虫机制的方法分析
Dec 12 Python
Django的用户模块与权限系统的示例代码
Jul 24 Python
Django Xadmin多对多字段过滤实例
Apr 07 Python
Python3开发环境搭建详细教程
Jun 18 Python
Python如何读写CSV文件
Aug 13 Python
Pandas数据结构之Series的使用
Mar 31 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
怎么使 Mysql 数据同步
2006/10/09 PHP
模拟OICQ的实现思路和核心程序(三)
2006/10/09 PHP
使用Apache的htaccess防止图片被盗链的解决方法
2013/04/27 PHP
php防止sql注入示例分析和几种常见攻击正则表达式
2014/01/12 PHP
ThinkPHP3.1.3版本新特性概述
2014/06/19 PHP
SAE实时日志接口SDK用法示例
2016/10/09 PHP
CI框架数据库查询缓存优化的方法
2016/11/21 PHP
PHP实现的简单在线计算器功能示例
2017/08/02 PHP
php使用curl_init()和curl_multi_init()多线程的速度比较详解
2018/08/15 PHP
laravel 自定义常量的两种方案
2019/10/14 PHP
JavaScript中this关键字使用方法详解
2007/03/08 Javascript
从零开始学习jQuery (二) 万能的选择器
2010/10/01 Javascript
做好七件事帮你提升jQuery的性能
2014/02/06 Javascript
node.js操作mongoDB数据库示例分享
2014/11/26 Javascript
不使用ajax实现无刷新提交表单
2014/12/21 Javascript
js实现统计字符串中特定字符出现个数的方法
2016/08/02 Javascript
手机软键盘弹出时影响布局的解决方法
2016/12/15 Javascript
vue cli webpack中使用sass的方法
2018/02/24 Javascript
vue组件定义,全局、局部组件,配合模板及动态组件功能示例
2019/03/19 Javascript
jQuery操作attr、prop、val()/text()/html()、class属性
2019/05/23 jQuery
javascript设计模式 ? 建造者模式原理与应用实例分析
2020/04/10 Javascript
用Python的pandas框架操作Excel文件中的数据教程
2015/03/31 Python
解决python2.7 查询mysql时出现中文乱码
2016/10/09 Python
Django中针对基于类的视图添加csrf_exempt实例代码
2018/02/11 Python
Django 反向生成url实例详解
2019/07/30 Python
python3 写一个WAV音频文件播放器的代码
2019/09/27 Python
Python实现捕获异常发生的文件和具体行数
2020/04/25 Python
天美时手表加拿大官网:Timex加拿大
2016/09/01 全球购物
香蕉共和国Banana Republic官网:美国GAP旗下偏贵族风格服饰品牌
2016/11/21 全球购物
泰国演唱会订票网站:StubHub泰国
2018/02/26 全球购物
民族团结先进个人事迹材料
2014/06/02 职场文书
研究生简历自我评价范文
2014/09/13 职场文书
2014法院干警廉洁警示教育思想汇报
2014/09/13 职场文书
2014党员学习兰辉先进事迹思想汇报
2014/09/17 职场文书
学校运动会广播稿范文
2014/10/02 职场文书
CocosCreator ScrollView优化系列之分帧加载
2021/04/14 Python