使用opencv选择任意照片识别七彩颜色(python)
# 识别七彩颜色
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)相关推荐
- opencv学习—简单车牌识别操作(python)
opencv学习-简单车牌识别操作(python) 目录 opencv学习-简单车牌识别操作(python) 利用opencv进行车牌识别的详细流程如下: 1.车牌检测 2.分割车牌号并进行识别 3. ...
- python+opencv多进程实现识别魔方颜色,通过kociemba算法得出算法字符串并画图(附毕设完整视频)
完整毕设成果视频如下: 本科毕业设计转魔方(声音略大) python+opencv本科毕业设计转魔方(声音略大) 上一篇博客已经给大家讲了鼠标hsv获取魔方颜色阈值方法,具体见 python+open ...
- Python+OpenCV人脸识别(基于LBPH+防照片识别+警报)
目录 废话 1.环境配置(jupyter notebook python 3.6.5) 2.训练集准备 3.代码思路(艹图) 4.人脸识别源码 5.参考文章 6.可能遇到的问题 废话 嗯,开局说点废话 ...
- OpenCV+百度云人脸识别项目及源码
OpenCV+百度云人脸识别项目及源码 1.需要的硬件环境 虚拟机 带有摄像头的电脑 2.整体项目的框架 用Opencv识别人脸,上传百度云进行识别对比 3.虚拟机上需要装的库 sudo apt-ge ...
- 基于Python的OpenCV+TensorFlow+Keras人脸识别实现
前言:本节要讲的人脸识别主要是借鉴了 一位研究生前辈的文章 我只是在他的基础上进行了改动,让代码能在现在的TensorFlow2.X 等的环境下运行 先看一下效果图 完整工程及源代码请点击链接下载:人 ...
- 基于Opencv的汽车车牌识别
在我国汽车工业迅猛发展的今天,汽车保有量的逐年大幅增加,对传统的车 辆管理和交通运行方式面临着巨大的压力和挑战.为了解决上述问题,车辆牌照自动识别技术(AVI)应运而生,并发展成为现代智能交通系统中的 ...
- 数字识别java开源_Java基于opencv实现图像数字识别(三)—灰度化和二值化
Java基于opencv实现图像数字识别(三)-灰度化和二值化 一.灰度化 灰度化:在RGB模型中,如果R=G=B时,则彩色表示灰度颜色,其中R=G=B的值叫灰度值:因此,灰度图像每个像素点只需一个字 ...
- 基于OpenCV自带分类器识别人脸
基于OpenCV自带分类器识别人脸 在VS2019下要安装适用于桌面的VC++ 2015(2017) v14 00(v14)工具集. 访问网站:https://visualstudio.microso ...
- Python Tensorflow + CNN + Opencv 英雄联盟小地图识别,LOL Minimap Scanner
Tensorflow + CNN + Opencv 英雄联盟小地图识别,LOL Minimap Scanner 本项目代码的展示 简介 思路 第一步:图像处理 1. 获取图像并转换 2. 过滤出图像中 ...
最新文章
- 记录:自制的小说推荐程序(一)
- Intel Realsense D435 python 从深度相机realsense生成pcl点云
- python控制语句_Python流程控制语句
- 区块链学习(3)--以太坊Dapp开发
- Python-OpenCV人脸检测(代码)
- 司空见惯 - 会议室名称
- springboot 中jsp乱码设置
- 小公司代理记账报税常见问题
- 云计算机是什么技术,什么是云计算技术?
- 美团技术委员会前端通道主席洪磊:爱折腾的斜杠青年
- 针对 DNS 监控的 Grafana Dashboard面板DeepFlow
- vss2005 配置详解
- JAVA与PLC通讯读取数据(两种方式)
- 共享内存(shmget,shmat,shmdt,shmctl)
- LimeSDR 上手指南
- UCP Message Structure
- Access随机查询
- 如何提升计算机的网络性能,提升WIFI信号强度(提高网速)的10大方法
- 谈谈SOA架构和微服务,以及两者的区别区别
- c语言编写消防车声音程序教程,单片机实现消防车报警声音的设计