文章目录

  • 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实现颜色检测相关推荐

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

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

  2. OpenCV使用神经网络检测颜色检查器

    OpenCV使用神经网络检测颜色检查器 使用神经网络检测颜色检查器 建造Building 示例的源代码 解释 设置标题和名称空间 创建检测器对象 加载模型 (可选)将dnn后端设置为CUDA 运行检测 ...

  3. 基于OpenCV的火焰检测(二)——RGB颜色判据

    上文跟大家分享了在做火焰检测中常用到的图像预处理方法,从这一篇博文开始,我将向大家介绍如何一步一步地检测出火焰区域.火焰提取要用 到很多判据,今天我要向大家介绍的是最简单的但是很有效的判据--RGB判 ...

  4. OpenCV 颜色检测| color detection

    OpenCV 颜色检测 1.导入必要的包并初始化相机 import cv2 import numpy as np# Reading the image img = cv2.imread('test.j ...

  5. OpenCV - C++实战(05) — 颜色检测

    目录 第5章  颜色检测 5.1 实现原理 5.2 Lab颜色模型 5.3 cv :: threshold() 阈值函数 5.4 计算图像之间的距离 5.4.1 公式计算 5.4.2 cv::absd ...

  6. 基于OpenCV的火焰检测(三)——HSI颜色判据

    上文向大家介绍了如何用最简单的RGB判据来初步提取火焰区域,现在我要给大家分享的是一种更加直观的判据--HSI判据.为什么说HSI判据是更加直观的判据呢?老规矩,先介绍一下HSI色彩模型:HSI颜色模 ...

  7. 【Opencv图像处理】BGB转HSV与颜色检测

    BGB转HSV与颜色检测 什么是HSV色彩空间? Opencv代码 静态图片颜色检测 结果展示 视频颜色检测 结果展示 什么是HSV色彩空间? HSV(色相.饱和度.值,也称为 HSB [色相.饱和度 ...

  8. OpenCV乒乓球位置检测【python】【颜色追踪】【霍夫圆】

    乒乓球位置检测 2021年3月14日 参考资料: https://www.bilibili.com/video/BV16K411W7x9 https://blog.csdn.net/weixin_44 ...

  9. C++/OpenCV:同颜色检测提取

    看到这个老哥写了一个类,但是没有demo,就使用这个类写了个例子 [OpenCV]OpenCV创建颜色识别类-class ColorDetector_Taily老段的专栏-CSDN博客 头文件 Col ...

  10. Opencv从入门到精通(五):透视图、拼接图片、颜色检测

    文章目录 一.透视图 二.拼接图片 三.颜色检测 一.透视图 二.拼接图片 实际上操作的是像素点矩阵 import cv2 import numpy as npimg = cv2.imread('1. ...

最新文章

  1. 第三次组织架构变动背后,腾讯AI走向何方?
  2. Qt Creator添加资源
  3. 从源码分析DEARGUI之让怪物随机动起来
  4. python读取xml_python解析xml文件
  5. 姚期智:中国金融科技发展的真正挑战是什么?如何解决? 本文作者:温晓桦 2017-09-17 18:31 导语:“在金融科技里面,计算机科学的用途已经从台后走到了台中,对核心金融体系的运作上产生一定的
  6. RTSP over UDP RTSP over TCP
  7. postgresql数据类型
  8. github上关于机器学习的awesome项目(资源大全)
  9. AI in RTC 创新挑战赛,决赛打响
  10. mysql 优化20点
  11. 使用FiddlerCore来测试WebAPI
  12. Ubuntu16.04换源
  13. 常见窗函数的C语言实现及其形状,适用于单片机、DSP作FFT运算
  14. 01let和const
  15. Windows组建网络服务 ——DNS的组建与架构
  16. 计算机网络(韩立刚网课笔记)
  17. $《第一行代码:Android》读书笔记——第5章 Broadcast
  18. python setuptools 打包 发布
  19. 基于FPGA的数字电压表设计
  20. 苹果与宝马和奔驰关于自动驾驶汽车的谈判告吹,退而求其次选择与大众汽车合作

热门文章

  1. 为什么项目验收前的总是非常忙乱?
  2. 可爱精灵宝贝 DP/爆搜
  3. 32位微型计算机能不能安装64位操作系统,32位cpu能装64位系统吗|32位cpu可以装64位系统吗...
  4. 使用memcpy函数的耗时测试(拷贝不同大小数据量耗时不同)
  5. 【WiFi 6E】WiFi 6E信道分布
  6. 墨刀实现区域内滚动效果
  7. MFC 解压7z文件
  8. /proc/config.gz 是什么
  9. java 怎样判断拼图是否可还原_拼图游戏可解性判断,自动生成可解拼图
  10. 【离散数学】单射、满射与双射