利用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抓取京东价格分析京东商品价格走势
Jan 09 Python
Python代码的打包与发布详解
Jul 30 Python
使用Python中PDB模块中的命令来调试Python代码的教程
Mar 30 Python
Python cookbook(数据结构与算法)实现查找两个字典相同点的方法
Feb 18 Python
Python实现App自动签到领取积分功能
Sep 29 Python
在交互式环境中执行Python程序过程详解
Jul 12 Python
关于python导入模块import与常见的模块详解
Aug 28 Python
Python使用scipy模块实现一维卷积运算示例
Sep 05 Python
python 矢量数据转栅格数据代码实例
Sep 30 Python
python利用Excel读取和存储测试数据完成接口自动化教程
Apr 30 Python
python中如何写类
Jun 29 Python
能让Python提速超40倍的神器Cython详解
Jun 24 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+SQL 注入攻击的技术实现以及预防办法
2010/12/29 PHP
php实现博客,论坛图片防盗链的方法
2016/10/15 PHP
ThinkPHP3.1.x修改成功与失败跳转页面的方法
2017/09/29 PHP
php学习笔记之mb_strstr的基本使用
2018/02/03 PHP
PHP PDO和消息队列的个人理解与应用实例分析
2019/11/25 PHP
基于jquery实现点击左右按钮图片横向滚动
2013/04/11 Javascript
js复制网页内容并兼容各主流浏览器的代码
2013/12/17 Javascript
Jquery Post处理后不进入回调的原因及解决方法
2014/07/15 Javascript
推荐一个自己用的封装好的javascript插件
2015/01/29 Javascript
jquery获得当前html页面源码的方法
2015/07/14 Javascript
animate 实现滑动切换效果【实例代码】
2016/05/05 Javascript
详解Angular开发中的登陆与身份验证
2016/07/27 Javascript
实现React单页应用的方法详解
2016/08/02 Javascript
JavaScript之cookie技术详解
2016/11/18 Javascript
使用jQuery操作DOM的方法小结
2017/02/27 Javascript
CentOS 安装NodeJS V8.0.0的方法
2017/06/15 NodeJs
js实现简易聊天对话框
2017/08/17 Javascript
微信小程序如何调用json数据接口并解析
2019/06/29 Javascript
easyUI使用分页过滤器对数据进行分页操作实例分析
2020/06/01 Javascript
js实现菜单跳转效果
2020/12/11 Javascript
原生js实现自定义难度的扫雷游戏
2021/01/22 Javascript
[01:05:52]DOTA2-DPC中国联赛 正赛 Ehome vs Aster BO3 第一场 2月2日
2021/03/11 DOTA
Python中的包和模块实例
2014/11/22 Python
Django框架会话技术实例分析【Cookie与Session】
2019/05/24 Python
Python 实现大整数乘法算法的示例代码
2019/09/17 Python
django框架中ajax的使用及避开CSRF 验证的方式详解
2019/12/11 Python
解决tensorflow由于未初始化变量而导致的错误问题
2020/01/06 Python
Django中和时区相关的安全问题详解
2020/10/12 Python
英国发展最快的在线超市之一:Click Marketplace
2021/02/15 全球购物
电力公司个人求职信范文
2014/02/04 职场文书
工商管理专业大学生职业生涯规划范文
2014/03/09 职场文书
工程力学专业自荐信范文
2014/03/17 职场文书
党员承诺书格式范文
2015/04/28 职场文书
2016年政治理论学习心得体会
2016/01/25 职场文书
《神奇的鸟岛》教学反思
2016/02/22 职场文书
假如给我三天光明:舟逆水而行,人遇挫而达 
2019/10/29 职场文书