Opencv实现颜色检测
文章目录
- 1.前置知识点
- (1) HSV,Opencv中的Mat和图片的属性
- (2)Opencv中基础的知识点
- (3)Opencv实现图像的基本变换
- 2.代码实战
- (1)创建窗口和设置视频帧的大小调整
- (2)翻转图像和将图片从BGR->HSV
- (3)获取hsv的色相值hue
- (4)根据色相值对颜色进行定义
- (5)绘制检测区域
- (6)绘制检测结果的文本
- (7)整体代码
1.前置知识点
(1) HSV,Opencv中的Mat和图片的属性
https://mydreamambitious.blog.csdn.net/article/details/125339425
(2)Opencv中基础的知识点
https://mydreamambitious.blog.csdn.net/article/details/125351256
(3)Opencv实现图像的基本变换
https://mydreamambitious.blog.csdn.net/article/details/125428402
2.代码实战
(1)创建窗口和设置视频帧的大小调整
cap=cv2.VideoCapture(0)
#设置显示的高宽
cap.set(cv2.CAP_PROP_FRAME_WIDTH,1100)
cap.set(cv2.CAP_PROP_FRAME_HEIGHT,750)
(2)翻转图像和将图片从BGR->HSV
ret,frame=cap.read()#对图像帧进行翻转(因为opencv图像和我们正常是反着的frame=cv2.flip(src=frame,flipCode=2)# frame=cv2.resize(src=frame,dsize=(750,600))hsv_frame=cv2.cvtColor(src=frame,code=cv2.COLOR_BGR2HSV)
(3)获取hsv的色相值hue
#获取hsv的色相值huepixel_center=hsv_frame[cy,cx]hue_value=pixel_center[0]
(4)根据色相值对颜色进行定义
color='Unknow'if hue_value<5:color='RED'elif hue_value<22:color='ORANGE'elif hue_value<33:color="YELLOW"elif hue_value<78:color="GREEN"elif hue_value<131:color="BLUE"elif hue_value<167:color="VIOLED"else:color="RED"
(5)绘制检测区域
#绘制检测区域cv2.rectangle(img=frame,pt1=(width//2+100,20),pt2=(width//2+390,200),color=(0,255,0),thickness=2)cv2.putText(img=frame,text='detect locate',org=(width//2+150,cy-10),fontFace=cv2.FONT_HERSHEY_SIMPLEX,fontScale=1.0,color=(0,255,0),thickness=2)
(6)绘制检测结果的文本
#获取检测位置的物体颜色b,g,r=int(frame[cy,cx][0]),int(frame[cy,cx][1]),int(frame[cy,cx][2])#绘制文本cv2.putText(img=frame,text=color,org=(20,50),fontFace=cv2.FONT_HERSHEY_SIMPLEX,fontScale=1.0,color=(0,255,0),thickness=2)cv2.circle(img=frame,center=(cx+30,cy),radius=5,color=(0,255,0),thickness=3)
(7)整体代码
import os
import cv2
import numpy as npcap=cv2.VideoCapture(0)
#设置显示的高宽
cap.set(cv2.CAP_PROP_FRAME_WIDTH,1100)
cap.set(cv2.CAP_PROP_FRAME_HEIGHT,750)while cap.isOpened():ret,frame=cap.read()#对图像帧进行翻转(因为opencv图像和我们正常是反着的frame=cv2.flip(src=frame,flipCode=2)# frame=cv2.resize(src=frame,dsize=(750,600))hsv_frame=cv2.cvtColor(src=frame,code=cv2.COLOR_BGR2HSV)#获取读取的帧的高宽height,width,channel=frame.shape# print(height,width)#获取检测点位置cx = width // 2+190cy=height//6+30#绘制检测区域cv2.rectangle(img=frame,pt1=(width//2+100,20),pt2=(width//2+390,200),color=(0,255,0),thickness=2)cv2.putText(img=frame,text='detect locate',org=(width//2+150,cy-10),fontFace=cv2.FONT_HERSHEY_SIMPLEX,fontScale=1.0,color=(0,255,0),thickness=2)#获取hsv的色相值huepixel_center=hsv_frame[cy,cx]hue_value=pixel_center[0]color='Unknow'if hue_value<5:color='RED'elif hue_value<22:color='ORANGE'elif hue_value<33:color="YELLOW"elif hue_value<78:color="GREEN"elif hue_value<131:color="BLUE"elif hue_value<167:color="VIOLED"else:color="RED"#获取检测位置的物体颜色b,g,r=int(frame[cy,cx][0]),int(frame[cy,cx][1]),int(frame[cy,cx][2])#绘制文本cv2.putText(img=frame,text=color,org=(20,50),fontFace=cv2.FONT_HERSHEY_SIMPLEX,fontScale=1.0,color=(0,255,0),thickness=2)cv2.circle(img=frame,center=(cx+30,cy),radius=5,color=(0,255,0),thickness=3)cv2.imshow('frame',frame)key=cv2.waitKey(1)if key==27:breakcap.release()
cv2.destroyAllWindows()# #图片的读取和缩放
# img=cv2.imread('images/1.png')
# img=cv2.resize(src=img,dsize=(450,450))
# #显示图片
# cv2.imshow('img',img)
# cv2.waitKey(0)
# cv2.destroyAllWindows()if __name__ == '__main__':print('Pycharm')
参考链接 https://b23.tv/6ZJL1WY
Opencv实现颜色检测相关推荐
- python颜色识别原理_python+opencv实现颜色检测、轮廓检测、颜色追踪
准备工作 python配置numpy和openCv库 读取图像和视频图像cv2.imread(路径) cv2.imshow(窗口名称,输出对象) cv2.waitkey(等待时间)import cv2 ...
- OpenCV使用神经网络检测颜色检查器
OpenCV使用神经网络检测颜色检查器 使用神经网络检测颜色检查器 建造Building 示例的源代码 解释 设置标题和名称空间 创建检测器对象 加载模型 (可选)将dnn后端设置为CUDA 运行检测 ...
- 基于OpenCV的火焰检测(二)——RGB颜色判据
上文跟大家分享了在做火焰检测中常用到的图像预处理方法,从这一篇博文开始,我将向大家介绍如何一步一步地检测出火焰区域.火焰提取要用 到很多判据,今天我要向大家介绍的是最简单的但是很有效的判据--RGB判 ...
- OpenCV 颜色检测| color detection
OpenCV 颜色检测 1.导入必要的包并初始化相机 import cv2 import numpy as np# Reading the image img = cv2.imread('test.j ...
- OpenCV - C++实战(05) — 颜色检测
目录 第5章 颜色检测 5.1 实现原理 5.2 Lab颜色模型 5.3 cv :: threshold() 阈值函数 5.4 计算图像之间的距离 5.4.1 公式计算 5.4.2 cv::absd ...
- 基于OpenCV的火焰检测(三)——HSI颜色判据
上文向大家介绍了如何用最简单的RGB判据来初步提取火焰区域,现在我要给大家分享的是一种更加直观的判据--HSI判据.为什么说HSI判据是更加直观的判据呢?老规矩,先介绍一下HSI色彩模型:HSI颜色模 ...
- 【Opencv图像处理】BGB转HSV与颜色检测
BGB转HSV与颜色检测 什么是HSV色彩空间? Opencv代码 静态图片颜色检测 结果展示 视频颜色检测 结果展示 什么是HSV色彩空间? HSV(色相.饱和度.值,也称为 HSB [色相.饱和度 ...
- OpenCV乒乓球位置检测【python】【颜色追踪】【霍夫圆】
乒乓球位置检测 2021年3月14日 参考资料: https://www.bilibili.com/video/BV16K411W7x9 https://blog.csdn.net/weixin_44 ...
- C++/OpenCV:同颜色检测提取
看到这个老哥写了一个类,但是没有demo,就使用这个类写了个例子 [OpenCV]OpenCV创建颜色识别类-class ColorDetector_Taily老段的专栏-CSDN博客 头文件 Col ...
- Opencv从入门到精通(五):透视图、拼接图片、颜色检测
文章目录 一.透视图 二.拼接图片 三.颜色检测 一.透视图 二.拼接图片 实际上操作的是像素点矩阵 import cv2 import numpy as npimg = cv2.imread('1. ...
最新文章
- 第三次组织架构变动背后,腾讯AI走向何方?
- Qt Creator添加资源
- 从源码分析DEARGUI之让怪物随机动起来
- python读取xml_python解析xml文件
- 姚期智:中国金融科技发展的真正挑战是什么?如何解决? 本文作者:温晓桦	2017-09-17 18:31 导语:“在金融科技里面,计算机科学的用途已经从台后走到了台中,对核心金融体系的运作上产生一定的
- RTSP over UDP RTSP over TCP
- postgresql数据类型
- github上关于机器学习的awesome项目(资源大全)
- AI in RTC 创新挑战赛,决赛打响
- mysql 优化20点
- 使用FiddlerCore来测试WebAPI
- Ubuntu16.04换源
- 常见窗函数的C语言实现及其形状,适用于单片机、DSP作FFT运算
- 01let和const
- Windows组建网络服务 ——DNS的组建与架构
- 计算机网络(韩立刚网课笔记)
- $《第一行代码:Android》读书笔记——第5章 Broadcast
- python setuptools 打包 发布
- 基于FPGA的数字电压表设计
- 苹果与宝马和奔驰关于自动驾驶汽车的谈判告吹,退而求其次选择与大众汽车合作