最近两周由于忙于个人项目,一直未发言了,实在是太荒凉了....,上周由于项目,见到Python的应用极为广泛,用起来也特别顺手,于是小编也开始着手学习Python,…下面我就汇报下今天的学习成果吧
小编运行环境unbuntu 14.0.4
首先我们先安装一下Python呗,我用2.7的,其实特别简单,一行指令就好
<强> sudo apt-get安装python-dev 强>
一般安装系统的时候其实python已经自带了,这步基本可以不用做,好吧,我们继续往下走吧,安装python-opencv,稍后我们需要用到opencv的库,一行指令即可,这也是小编特别喜欢linux的原因:
<强> sudo apt-get安装python-opencv 强>
完成之后我们开始操作吧,首先同样的我们打开摄像头露个脸呗,不多说,上代码,vim pythonpractice。py打开vim,复制以下代码即可(友情提示python是有严格的缩进的,下面我都是四个空格缩进,各位不要复制错了):lo
lmport cv2 进口numpy np #添加模块和矩阵模块 帽=cv2.VideoCapture (0) #打开摄像头,若打开本地视频,同opencv一样,只需将0换成(“×××.avi”) 而(1):#框架 ret,?cap.read() #显示一帧 cv2。imshow(“捕获”,帧) 如果cv2.waitKey (1),0 xff==奥德(问): 打破 cap.release () cv2.destroyAllWindows () #释放并销毁窗口
python pythonpractice
<强>。py 强>
小脸蛋即可出现在你的屏幕上了,下面稍微添加几行有意思的代码吧,实现蓝色背景检测,我这有瓶蓝色脉动,正好做个小实验。
进口cv2 进口numpy np 帽=cv2.VideoCapture(0) #蓝色打 lower_blue=np.array([78年,43岁,46]) upper_blue=np.array ([110255255]) 而(1):#框架和显示 ret,?cap.read () cv2。imshow(“捕获”,帧)#变化hsv模型 hsv=cv2。cvtColor(框架、cv2.COLOR_BGR2HSV) #面具 掩码=cv2。inRange (hsv lower_blue upper_blue) cv2。imshow(面具,面具)#发现蓝色 res=cv2。bitwise_and(帧,帧,面膜=面具) cv2。imshow(“结果”,res) 如果cv2.waitKey (1),0 xff==奥德(问): breakcap.release () cv2.destroyAllWindows ()python pythonpractice
同样。py运行一下,可以把手机换成蓝色背景检测以下、下面时间就交给各位理解了,代码很简单,只有简单的几行程序。
<强>下面有个复杂点颜色识别的代码强>
# !/usr/bin/python # - * -编码:utf - 8 - * 进口cv2 进口numpy np 导入的时间 readlower=np.array ([156179144]) readupper=np.array ([180255255]) readlower1=np。阵列([0,128,146]) readupper2=np。阵列([5,255,255]) lowerarry=[[readlower、readupper '红色'],[readlower1、readupper2 ' red1 ']] 捕捉=cv2.VideoCapture (4. mp4) 而真正的: ret,?capture.read () 打印frame.shape (640480)=cv2.resize帧(帧) 如果ret==假: 打印(“视频是埃罗”) # cv2.imshow (xiaorun,框架) cv2.COLOR_BGR2HSV hsv=cv2.cvtColor(框架) lowerarry colormin colermax,名称: 掩码=cv2.inRange (hsv, colormin colermax) # res=cv2。bitwise_and(帧,帧,面膜=面具) #=cv2.erode面具(面具,没有,迭代=1) 掩码=cv2.dilate(面具,没有迭代=25) 受潮湿腐烂、二进制=cv2。阈值(255年面具,15日,cv2.THRESH_BINARY) cv2.imshow(“结果”,二进制) 内核=cv2.getStructuringElement (cv2。7)MORPH_RECT(21日)=cv2关闭。cv2 morphologyEx(二进制。MORPH_CLOSE内核) cv2。imshow(“关闭”,关闭) #侵蚀=cv2。侵蚀(关闭,没有迭代=4) # cv2。imshow(“侵蚀”,侵蚀) 扩张=cv2。扩张(关闭,没有,迭代=50) cv2。imshow(扩张,扩张)=cv2 _、轮廓、层次结构。cv2 findContours(二进制。RETR_EXTERNAL cv2.CHAIN_APPROX_SIMPLE) # res=_.copy () 反对的轮廓: x, y, w h=cv2.boundingRect (con) #将轮廓分解为识别对象的左上角坐标和宽,高 #在图像上画上矩形(图片,左上角坐标,右下角坐标,颜色,线条宽度) cv2。矩形(帧(x, y), (x + w, y + h) (255, 0, 0), 3) cv2.imshow (res,框架) 关键=cv2.waitKey (1) 如果键==奥德(问): 打破
小编只是想说明以下,一定要学以致用,任何一种编程语言都是倒腾两天就直接上手的,按部就班的学习语法,那样不知何时才能出师了,祝各位玩得高在机器视觉上
以上这篇利用python打开摄像头及颜色检测方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。