# 识别七彩颜色
import cv2 as cv
import matplotlib.pyplot as plt
import tkinter as tk
from tkinter import filedialog
import numpy as np
from tkinter import *class Application(Frame):"""一个经典的GUI程序的写法"""def __init__(self, master=None):super().__init__(master)  # super代表的是父类的定义,而不是父类对象self.master = masterself.lower_hsv = np.array([0, 0, 0])self.upper_hsv = np.array([0, 0, 0])self.pack()self.createWidget()def createWidget(self):self.button1 = Button(self, text='红色', width=5, command=self.blue, anchor='c').pack(side='right')self.button2 = Button(self, text='蓝色', width=5, command=self.red, anchor='c').pack(side='left')self.button3 = Button(self, text='绿色', width=5, command=self.green, anchor='c').pack(side='left')self.button4 = Button(self, text='橙色', width=5, command=self.orange, anchor='c').pack(side='right')self.button5 = Button(self, text='紫色', width=5, command=self.purple, anchor='c').pack(side='left')self.button6 = Button(self, text='青色', width=5, command=self.cyan, anchor='c').pack(side='left')self.button7 = Button(self, text='黄色', width=5, command=self.yellow, anchor='c').pack(side='right')self.pack()def red(self):self.lower_hsv = np.array([0, 43, 46])self.upper_hsv = np.array([10, 255, 255])self.open()def blue(self):self.lower_hsv = np.array([100, 43, 46])self.upper_hsv = np.array([124, 255, 255])self.open()def green(self):self.lower_hsv = np.array([35, 43, 46])self.upper_hsv = np.array([77, 255, 255])self.open()def orange(self):self.lower_hsv = np.array([11, 43, 46])self.upper_hsv = np.array([25, 255, 255])self.open()def purple(self):self.lower_hsv = np.array([125, 43, 46])self.upper_hsv = np.array([155, 255, 255])self.open()def cyan(self):self.lower_hsv = np.array([78, 43, 46])self.upper_hsv = np.array([99, 255, 255])self.open()def yellow(self):self.lower_hsv = np.array([26, 43, 46])self.upper_hsv = np.array([34, 255, 255])self.open()@staticmethoddef open():file_path = filedialog.askopenfilename()img = cv.imread(file_path)img2 = cv.cvtColor(img, cv.COLOR_BGR2HSV)  # 转换BGR色彩空间到HSV色彩空间mask = cv.inRange(img2, app.lower_hsv, app.upper_hsv)  # cv.inRange()函数的作用是提取想要的颜色,并把该颜色的区域设置为白色,其余的设置为黑色cnts1, hierarchy1 = cv.findContours(mask, cv.RETR_EXTERNAL, cv.CHAIN_APPROX_NONE)  # 轮廓检测for cnt in cnts1:(x, y, w, h) = cv.boundingRect(cnt)  # 该函数返回矩阵四个点cv.rectangle(img, (x, y - 20), (x + w, y + h), (0, 0, 255), 2)  # 将检测到的颜色框起来plt.subplot(121), plt.imshow(img)plt.title('Image'), plt.xticks([]), plt.yticks([])plt.subplot(122), plt.imshow(mask)plt.title('Find Image'), plt.xticks([]), plt.yticks([])plt.show()if __name__ == "__main__":app = Application()app.mainloop()

使用opencv选择任意照片识别七彩颜色(python)相关推荐

  1. opencv学习—简单车牌识别操作(python)

    opencv学习-简单车牌识别操作(python) 目录 opencv学习-简单车牌识别操作(python) 利用opencv进行车牌识别的详细流程如下: 1.车牌检测 2.分割车牌号并进行识别 3. ...

  2. python+opencv多进程实现识别魔方颜色,通过kociemba算法得出算法字符串并画图(附毕设完整视频)

    完整毕设成果视频如下: 本科毕业设计转魔方(声音略大) python+opencv本科毕业设计转魔方(声音略大) 上一篇博客已经给大家讲了鼠标hsv获取魔方颜色阈值方法,具体见 python+open ...

  3. Python+OpenCV人脸识别(基于LBPH+防照片识别+警报)

    目录 废话 1.环境配置(jupyter notebook python 3.6.5) 2.训练集准备 3.代码思路(艹图) 4.人脸识别源码 5.参考文章 6.可能遇到的问题 废话 嗯,开局说点废话 ...

  4. OpenCV+百度云人脸识别项目及源码

    OpenCV+百度云人脸识别项目及源码 1.需要的硬件环境 虚拟机 带有摄像头的电脑 2.整体项目的框架 用Opencv识别人脸,上传百度云进行识别对比 3.虚拟机上需要装的库 sudo apt-ge ...

  5. 基于Python的OpenCV+TensorFlow+Keras人脸识别实现

    前言:本节要讲的人脸识别主要是借鉴了 一位研究生前辈的文章 我只是在他的基础上进行了改动,让代码能在现在的TensorFlow2.X 等的环境下运行 先看一下效果图 完整工程及源代码请点击链接下载:人 ...

  6. 基于Opencv的汽车车牌识别

    在我国汽车工业迅猛发展的今天,汽车保有量的逐年大幅增加,对传统的车 辆管理和交通运行方式面临着巨大的压力和挑战.为了解决上述问题,车辆牌照自动识别技术(AVI)应运而生,并发展成为现代智能交通系统中的 ...

  7. 数字识别java开源_Java基于opencv实现图像数字识别(三)—灰度化和二值化

    Java基于opencv实现图像数字识别(三)-灰度化和二值化 一.灰度化 灰度化:在RGB模型中,如果R=G=B时,则彩色表示灰度颜色,其中R=G=B的值叫灰度值:因此,灰度图像每个像素点只需一个字 ...

  8. 基于OpenCV自带分类器识别人脸

    基于OpenCV自带分类器识别人脸 在VS2019下要安装适用于桌面的VC++ 2015(2017) v14 00(v14)工具集. 访问网站:https://visualstudio.microso ...

  9. Python Tensorflow + CNN + Opencv 英雄联盟小地图识别,LOL Minimap Scanner

    Tensorflow + CNN + Opencv 英雄联盟小地图识别,LOL Minimap Scanner 本项目代码的展示 简介 思路 第一步:图像处理 1. 获取图像并转换 2. 过滤出图像中 ...

最新文章

  1. 记录:自制的小说推荐程序(一)
  2. Intel Realsense D435 python 从深度相机realsense生成pcl点云
  3. python控制语句_Python流程控制语句
  4. 区块链学习(3)--以太坊Dapp开发
  5. Python-OpenCV人脸检测(代码)
  6. 司空见惯 - 会议室名称
  7. springboot 中jsp乱码设置
  8. 小公司代理记账报税常见问题
  9. 云计算机是什么技术,什么是云计算技术?
  10. 美团技术委员会前端通道主席洪磊:爱折腾的斜杠青年
  11. 针对 DNS 监控的 Grafana Dashboard面板DeepFlow
  12. vss2005 配置详解
  13. JAVA与PLC通讯读取数据(两种方式)
  14. 共享内存(shmget,shmat,shmdt,shmctl)
  15. LimeSDR 上手指南
  16. UCP Message Structure
  17. Access随机查询
  18. 如何提升计算机的网络性能,提升WIFI信号强度(提高网速)的10大方法
  19. 谈谈SOA架构和微服务,以及两者的区别区别
  20. c语言编写消防车声音程序教程,单片机实现消防车报警声音的设计

热门文章

  1. 29. 钛极OS之存储
  2. 微信小程序部分iphone机型new Date()转换时间为NAN
  3. SQL-常用的5个聚合函数
  4. 机器学习——学习路线图
  5. OK Cloud云电脑来了,低配电脑玩3A游戏的快乐(文末福利)
  6. Android文件目录(包含对6.0系统的说明)
  7. aspen中添加模型上没有物流箭头
  8. chrome浏览器去掉HTML5 video下载按钮
  9. 62.菜鸟福音 60条笔记本电脑使用经典技巧
  10. WiFiSpoof for Mac(Mac地址修改工具)