opencv实现颜色检测

本文实例为大家分享了opencv实现颜色检测的具体代码,供大家参考,具体内容如下

若要在OPencv 中实现颜色检测,首先要将待检测图像转换到HSV颜色空间中,但因为颜色是一个特定的取值范围,并且在我们不知情的情况下,只能通过TrackBar 来控制颜色阈值,用以探究各颜色的取值范围。

程序:

#include <iostream>
#include <opencv2/highgui.hpp> // 说是说gui 具体什么gui 不清楚
#include <opencv2/imgcodecs.hpp> // 图像头文件
#include <opencv2/imgproc.hpp> // 图像处理头文件
using namespace std;
using namespace cv;
/// Color Detection ///
Mat imgHSV, mask;
int hmin = 0, smin = 0, vmin = 0;
int hmax = 179, smax = 255, vmax = 255;
int main()
{
    string path = "resources/shapes.png"; // 导入图形的时候,先要在右边点击显示所有文件!!!
    Mat img = imread(path); // 在opencv 中所有的图像信息都使用Mat
    // 颜色空间操作一般使用HSV  即 HSV 颜色空间
    cvtColor(img, imgHSV, COLOR_BGR2HSV); // 将 img 图像转换到 HSV 空间中

    namedWindow("trackBar",(640,200)); // 创建一个 名为 trackBar 的窗口
    createTrackbar("Hue Min", "trackBar", &hmin, 179); // hmin 即反应了当前颜色的值
    createTrackbar("Hue Max", "trackBar", &hmax, 179);
    createTrackbar("Sat Min", "trackBar", &smin, 255);
    createTrackbar("Sat Max", "trackBar", &smax, 255);
    createTrackbar("Val Min", "trackBar", &vmin, 255);
    createTrackbar("Val Max", "trackBar", &vmax, 255);
    // 若要使用 trackBar 则必须使用 while 循环
    while (true)
    {
        // inRange 函数用来收集颜色
        // 因为在正常情况下某特定颜色并不是一个单调的值,而是一个取值范围
        //
        Scalar lower(hmin, smin, vmin);
        Scalar upper(hmax, smax, vmax);
        inRange(imgHSV, lower, upper, mask); // inRange 可以搜索范围在lower 及 upper 之间的颜色
        imshow("Image HSV", imgHSV);
        imshow("Image", img);
        imshow("Image Mask ", mask);
        waitKey(1); // 此时延时为1 即1ms 换一帧
    }

    return 0;
}

运行结果:

如该运行结果即检测浅蓝色图案。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • python调用opencv实现猫脸检测功能

    Python 小猫检测,通过调用opencv自带的猫脸检测的分类器进行检测. 分类器有两个:haarcascade_frontalcatface.xml和 haarcascade_frontalcatface_extended.xml.可以在opencv的安装目录下找到 D:\Program Files\OPENCV320\opencv\sources\data\haarcascades 小猫检测代码为: 1. 直接读取图片调用 import cv2 image = cv2.imread("ca

  • Python实战之OpenCV实现猫脸检测

    开发工具 Python版本:3.6.4 相关模块: cv2模块: 以及一些Python自带的模块. 环境搭建 安装Python并添加到环境变量,pip安装需要的相关模块即可. 原理简介 简单地讲一讲Haar分类器,也就是Viola-Jones识别器. 详细的原理说明可参考相关文件中的两篇论文: Rapid Object Detection using a Boosted Cascade of Simple Features; Robust Real-Time Face Detection. (1

  • Python-OpenCV实现图像缺陷检测的实例

    在Jupyter Notebook上使用Python+opencv实现如下图像缺陷检测.关于opencv库的安装可以参考:Python下opencv库的安装过程与一些问题汇总. 1.实现代码 import cv2 import numpy from PIL import Image, ImageDraw, ImageFont #用于给图片添加中文字符 def ImgText_CN(img, text, left, top, textColor=(0, 255, 0), textSize=20):

  • python基于Opencv实现人脸口罩检测

    一.开发环境 python 3.6.6 opencv-python 4.5.1 二.设计要求 1.使用opencv-python对人脸口罩进行检测 三.设计原理 设计流程图如图3-1所示, 图3-1 口罩检测流程图 首先进行图片的读取,使用opencv的haar鼻子特征分类器,如果检测到鼻子,则证明没有戴口罩.如果检测到鼻子,接着使用opencv的haar眼睛特征分类器,如果没有检测到眼睛,则结束.如果检测到眼睛,则把RGB颜色空间转为HSV颜色空间.进行口罩区域的检测.口罩区域检测流程是首先把

  • python利用opencv实现颜色检测

    本文实例为大家分享了python利用opencv实现颜色检测的具体代码,供大家参考,具体内容如下 需要实现倒车辅助标记检测的功能,倒车辅助标记颜色已经确定了,所以不需要使用深度学习的方法,那样成本太高了,直接可以使用颜色检测的方法. 1.首先需要确定待检测目标的HSV值 import cv2 img = cv2.imread('l3.png') gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) hsv = cv2.cvtColor(img, cv2.COL

  • opencv实现颜色检测

    本文实例为大家分享了opencv实现颜色检测的具体代码,供大家参考,具体内容如下 若要在OPencv 中实现颜色检测,首先要将待检测图像转换到HSV颜色空间中,但因为颜色是一个特定的取值范围,并且在我们不知情的情况下,只能通过TrackBar 来控制颜色阈值,用以探究各颜色的取值范围. 程序: #include <iostream> #include <opencv2/highgui.hpp> // 说是说gui 具体什么gui 不清楚 #include <opencv2/i

  • C++利用opencv实现人脸检测

    小编所有的帖子都是基于unbuntu系统的,当然稍作修改同样试用于windows的,经过小编的绞尽脑汁,把刚刚发的那篇python 实现人脸和眼睛的检测的程序用C++ 实现了,当然,也参考了不少大神的博客,下面我们就一起来看看: Linux系统下安装opencv我就再啰嗦一次,防止有些人没有安装没调试出来喷小编的程序是个坑, sudo apt-get install libcv-dev sudo apt-get install libopencv-dev 看看你的usr/share/opencv

  • Python OpenCV调用摄像头检测人脸并截图

    本文实例为大家分享了Python OpenCV调用摄像头检测人脸并截图的具体代码,供大家参考,具体内容如下 注意:需要在python中安装OpenCV库,同时需要下载OpenCV人脸识别模型haarcascade_frontalface_alt.xml,模型可在OpenCV-PCA-KNN-SVM_face_recognition中下载. 使用OpenCV调用摄像头检测人脸并连续截图100张 #-*- coding: utf-8 -*- # import 进openCV的库 import cv2

  • Python基于OpenCV实现人脸检测并保存

    本文实例为大家分享了Python基于OpenCV实现人脸检测,并保存的具体代码,供大家参考,具体内容如下 安装opencv 如果安装了pip的话,Opencv的在windows的安装可以直接通过cmd命令pip install opencv-python(只需要主要模块),也可以输入命令pip install opencv-contrib-python(如果需要main模块和contrib模块) 详情可以点击此处 导入opencv import cv2 所有包都包含haarcascade文件.这

  • 利用python打开摄像头及颜色检测方法

    最近两周由于忙于个人项目,一直未发言了,实在是太荒凉了....,上周由于项目,见到Python的应用极为广泛,用起来也特别顺手,于是小编也开始着手学习Python,-下面我就汇报下今天的学习成果吧 小编运行环境unbuntu 14.0.4 首先我们先安装一下Python呗,我用的2.7,其实特别简单,一行指令就OK sudo apt-get install python-dev 一般安装系统的时候其实python已经自带了,这步基本可以不用做,OK,我们继续往下走吧,安装python-openc

  • 浅谈opencv自动光学检测、目标分割和检测(连通区域和findContours)

    步骤如下: 1.图片灰化: 2.中值滤波 去噪 3.求图片的光影(自动光学检测) 4.除法去光影 5.阈值操作 6.实现了三种目标检测方法 主要分两种连通区域和findContours 过程遇到了错误主要是图片忘了灰化处理,随机颜色的问题.下面代码都已经进行了解决 这是findContours的效果 下面是连通区域的结果 #include <opencv2\core\utility.hpp> #include <opencv2\imgproc.hpp> #include <o

  • opencv实现机器视觉检测和计数的方法

    引言 在机器视觉中,有时需要对产品进行检测和计数.其难点无非是对于产品的图像分割. 由于之前网购的维生素片,有时候忘了今天有没有吃过,就想对瓶子里的药片计数...在学习opencv以后,希望实现对于维生素片分割计数算法.本次实战在基于形态学的基础上又衍生出基于距离变换的分水岭算法,使其实现的效果更具普遍性. 基于形态学的维生素片检测和计数 整体思路: 读取图片 形态学处理(在二值化前进行适度形态学处理,效果俱佳) 二值化 提取轮廓(进行药片分割) 获取轮廓索引,并筛选所需要的轮廓 画出轮廓,显示

  • Python机器视觉之基于OpenCV的手势检测

    目录 1 简介 2 传统机器视觉的手势检测 2.1 轮廓检测法 2.2 算法结果 2.3 整体代码实现 3 深度学习方法做手势识别 3.1 经典的卷积神经网络 3.2 YOLO系列 3.3 SSD 3.4 实现步骤 3.5 关键代码 4 实现手势交互 1 简介 今天学长向大家介绍一个机器视觉项目 基于机器视觉opencv的手势检测 手势识别 算法 2 传统机器视觉的手势检测 普通机器视觉手势检测的基本流程如下: 其中轮廓的提取,多边形拟合曲线的求法,凸包集和凹陷集的求法都是采用opencv中自带

  • 基于深度学习和OpenCV实现目标检测

    目录 使用深度学习和 OpenCV 进行目标检测 MobileNets:高效(深度)神经网络 使用 OpenCV 进行基于深度学习的对象检测 使用 OpenCV 检测视频 使用深度学习和 OpenCV 进行目标检测 基于深度学习的对象检测时,您可能会遇到三种主要的对象检测方法: Faster R-CNNs (Ren et al., 2015) You Only Look Once (YOLO) (Redmon et al., 2015) Single Shot Detectors (SSD)(L

随机推荐