运用摄像头拍照

import cv2
import osoutput_dir ='/home/pi/Desktop/py'
i = 1
cap = cv2.VideoCapture(0)
while 1:ret, frame = cap.read()cv2.imshow('cap', frame)flag = cv2.waitKey(1)if flag == 13:#按下回车键output_path = os.path.join(output_dir,  "%04d.jpg" % i)cv2.imwrite(output_path, frame)i += 1if flag == 27:#按下ESC键break

对颜色的hsv值进行选择

import cv2
import numpy as np

def nothing(x):
pass

use track bar to perfectly define (1/2)

the lower and upper values for HSV color space(2/2)

cv2.namedWindow("Tracking")
#参数:1 Lower/Upper HSV 3 startValue 4 endValue
cv2.createTrackbar("LH","Tracking",35,255,nothing)
cv2.createTrackbar("LS","Tracking",43,255,nothing)
cv2.createTrackbar("LV","Tracking",46,255,nothing)
cv2.createTrackbar("UH","Tracking",77,255,nothing)
cv2.createTrackbar("US","Tracking",255,255,nothing)
cv2.createTrackbar("UV","Tracking",255,255,nothing)while True:frame = cv2.imread('/home/pi/Desktop/py/0002.jpg')#这里是你照片存放的路径hsv = cv2.cvtColor(frame,cv2.COLOR_BGR2HSV)l_h = cv2.getTrackbarPos("LH","Tracking")l_s = cv2.getTrackbarPos("LS","Tracking")l_v = cv2.getTrackbarPos("LV","Tracking")u_h = cv2.getTrackbarPos("UH","Tracking")u_s = cv2.getTrackbarPos("US","Tracking")u_v = cv2.getTrackbarPos("UV","Tracking")l_g = np.array([l_h, l_s, l_v]) # lower green valueu_g = np.array([u_h,u_s,u_v])mask = cv2.inRange(hsv,l_g,u_g)res=cv2.bitwise_and(frame,frame,mask=mask) # src1,src2cv2.imshow("frame", frame)cv2.imshow("mask", mask)cv2.imshow("res", res)key = cv2.waitKey(1)if key == 27: # Escbreakcv2.destroyAllWindows()

对颜色的画框捕抓

import cv2
import numpy as np
import imutils
from imutils import contours
#import RPi.GPIO as GPIO#PIN5=5#引脚选用,选用GPIO5
#PIN6=6#选用GPIO6
#auto=0
#straight_line_speed=9 #电机最大的旋转速度,百分比值为#5.8。不转时的百分比值为10.5
#circle_speed=9
#servo_straight=8.2
#GPIO.setmode(GPIO.BCM)
#GPIO.setup(PIN5,GPIO.OUT)
#GPIO.setup(PIN6,GPIO.OUT)
#pwm_servo=GPIO.PWM(PIN5,58.8)#pin5用于舵机
#pwm_motor=GPIO.PWM(PIN6,58.8)#pin6用于电机
#pwm_servo.start(0)#初始占空比
#pwm_motor.start(0)# 颜色阈值
lower = np.array([158,139,49])
upper = np.array([255,255,212])
# 内核
kernel = np.ones((5, 5), np.uint8)# 打开摄像头
vc = cv2.VideoCapture(0)
if vc.isOpened():flag, frame = vc.read()# 翻转图像# 这一步可以忽略,博主的摄像头是反着的# 所以加上这句话可以让摄像头的图像正过来#frame = imutils.rotate(frame, 180)cv2.imshow("frame", frame)
else:flag = False''''def servo(a):if auto:pwm_servo.ChangeDutyCycle(a)else:GPIO.setup(PIN5,GPIO.IN,pull_up_down=GPIO.PUD_UP)#设置引脚5为输入引脚,并开启上拉电阻def motor(a):if auto:pwm_motor.ChangeDutyCycle(a)else:GPIO.setup(PIN6,GPIO.IN,pull_up_down=GPIO.PUD_UP)#设置引脚6为输入引脚,并开启上拉电阻''''def find_color():flag, frame = vc.read()# 翻转图像#frame = imutils.rotate(frame, 180)draw_frame = frame.copy()#if frame is None:#  breakif flag is True:'''下面对摄像头读取到的图像进行处理,这个步骤是比较重要的'''# 转换颜色空间HSVframe_hsv = cv2.cvtColor(frame, cv2.COLOR_BGR2HSV)# 颜色识别img = cv2.inRange(frame_hsv, lower, upper)# 膨胀操作dilation = cv2.dilate(img, kernel, iterations=2)# 闭操作closing = cv2.morphologyEx(dilation, cv2.MORPH_CLOSE, kernel)# 高斯滤波closing = cv2.GaussianBlur(closing, (5, 5), 0)# 边缘检测edges = cv2.Canny(closing, 10, 20)'''上面进行那么多操作就是为了得到更好的目标图形,具体效果因环境而异'''# 寻找轮廓cnts, _ = cv2.findContours(edges, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_NONE)# 判断轮廓数量也就是判断是否寻找到轮廓,如果没有找到轮廓就不继续进行操作if len(cnts) > 0:# 存放轮廓面积的列表s = []# 存放最大轮廓的索引max_index = 0# 获得排序后的轮廓列表以及每个轮廓对应的外接矩形(cnts, boundingRects) = contours.sort_contours(cnts)# 寻找面积最大的轮廓的索引for cnt in cnts:s.append(cv2.contourArea(cnt))max_index = s.index(max(s))# 根据面积最大轮廓的索引找到它的外接矩形的信息(x, y, w, h) = boundingRects[max_index]# 画矩形frame_out = cv2.rectangle(draw_frame, (x, y), (x+w, y+h), (0, 255, 0), 2)'''' if 140<x<300:#print("直走")                servo(servo_straight)motor(straight_line_speed)if x<=140:#print("turn right")servo(servo_straight-1.5)motor(circle_speed)if x>=300:              #print("left")servo(servo_straight+1.5)motor(circle_speed)else:#print("find")servo(servo_straight-1.5)motor(circle_speed)''''        cv2.imshow("frame", draw_frame)while(True):find_color()if cv2.waitKey(10) == 27:breakvc.release()
cv2.destroyAllWindows()
GPIO.cleanup()#清空引脚定义,设置为输入状态,防止接短路

树莓派摄像头运用python颜色识别相关推荐

  1. python 颜色识别_在python中构建颜色识别器

    python 颜色识别 In this post, I will show you how to build your own color recognizer using Python. This ...

  2. python颜色识别原理_电脑控制手机 Python实现颜色识别功能

    原标题:电脑控制手机 Python实现颜色识别功能 用电脑控制手机好几年了,Total Control作为安卓手机的多控系统,是我用过各方面都比较稳定的一款软件了.通过脚本实现识别颜色是其强大功能之一 ...

  3. python颜色识别_浅谈Python3识别判断图片主要颜色并和颜色库进行对比的方法

    [更新]主要提供两种方案: 方案一:(参考网上代码,感觉实用性不是很强)使用PIL截取图像,然后将RGB转为HSV进行判断,统计判断颜色,最后输出RGB值 方案二:使用opencv库函数进行处理.(效 ...

  4. python颜色识别原理_python+opencv实现颜色检测、轮廓检测、颜色追踪

    准备工作 python配置numpy和openCv库 读取图像和视频图像cv2.imread(路径) cv2.imshow(窗口名称,输出对象) cv2.waitkey(等待时间)import cv2 ...

  5. python颜色识别_颜色检测python

    广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 版权声明:本文为博主原创文章,未经博主允许不得转载. https:blog.cs ...

  6. python颜色识别算法_纯Python编写K-means算法,提取图片中的主体颜色

    在文章 今天我用Python手写了一个K-means算法,来完成同样的功能. 聚类是数据挖掘中一种非常重要的学习流派,指将未标注的样本数据中相似的分为同一类,正所谓"物以类聚,人以群分&qu ...

  7. python颜色识别_Python人体肤色检测

    Python人体肤色检测 概述 本文中的人体肤色检测功能采用 OpenCV 库实现, OpenCV是一个基于BSD许可(开源)发行的跨平台计算机视觉库,可以运行在Linux.Windows.Andro ...

  8. python颜色识别原理_用opencv-python实现颜色检测

    这里有一个HSV颜色阈值脚本来确定下限和上限,而不是猜测和检查 import cv2 import sys import numpy as np def nothing(x): pass # Load ...

  9. 智能家居(12)——树莓派USB摄像头捕捉人脸并识别

    树莓派摄像头捕捉人脸并识别 一.USB摄像头监控.拍照 二.树莓派安装libcurl和openssl库 三.拍照的关键指令: 四.源码及步骤 参考原文: https://blog.csdn.net/N ...

最新文章

  1. ASP.NET 例程完全代码版(3)——随意创建图形信息
  2. es6 数组找最大值_自学Java笔记_day04_第四章 数组
  3. 树与二叉树 | 实验3:由遍历序列构造二叉树
  4. 三维空间碰撞问题;空间中两直线的最短距离及最近点
  5. Gradle常用配置
  6. 区块链BaaS云服务(21)腾讯CCGP”节点安全“
  7. 华大 MCU 之四 使用问题记录
  8. nginx下面server配置
  9. 【力扣】NO.136.只出现一次的数字
  10. 《C语言及程序设计》实践参考——体重监测器
  11. UML类图关系全面剖析
  12. html判断隐藏显示,javascript如何判断元素是否可见?
  13. 1.59TB《全球 12.5 米高程DEM for WeServer》发布
  14. 新版谷歌浏览器开启Flash支持,开启flash方法
  15. 麦块java文件夹_我的世界游戏文件夹目录作用介绍 各个文件夹都是什么用
  16. [语义分割]CTNet: Context-based Tandem Network for Semantic Segmentation
  17. x86 单线并发多拨_单线多拨软路由。真正打破网络限速,飙升网速的秘诀
  18. python plot画图另存jpg_Python Plot+Bokeh画图并保存为图片或网页
  19. Charles手机的代理配置与证书的安装
  20. RPM包安装的数据库进行版本升级

热门文章

  1. 敏捷 橄榄球运动_澳大利亚橄榄球迷的研究声称南非裁判的偏见被证明是错误的
  2. RK3399驱动开发 | 14 - AP6255 SDIO WiFi 调试(基于linux5.4.32内核)
  3. 我的MBTI性格测试
  4. 企业MES制造执行系统的分类与应用
  5. 计算机学开发,Lazarus
  6. 详解物理层_计算机网络
  7. 委托代理设计模式(协议)
  8. 计算机在自动化未来领域方向,计算机在电力自动化系统中的应用实践(原稿)
  9. 关于微信公账号H5 API 调用的坑 BUG
  10. 前端学习——HTML思维导图