OpenCV——视频颜色识别

#include <opencv2/opencv.hpp>
#include <iostream>

using namespace std;
using namespace cv;

int minh,maxh,mins,maxs,minv,maxv;
void helptext()
{
    cout << "B——黑色\n";
    cout << "H——灰色\n";
    cout << "W——白色\n";
    cout << "R——红色\n";
    cout << "O——橙色\n";
    cout << "Y——黄色\n";
    cout << "G——绿色\n";
    cout << "L——蓝色\n";
    cout << "P——紫色\n";
    cout << "输入要求识别的颜色对应的字母:" ;
}

void deal(char color)
{
        switch(color){
    case ‘B‘:
        minh = 0;
        maxh = 180;
        mins = 0;
        maxs = 255;
        minv = 0;
        maxv = 46;
        break;
    case ‘H‘:
        minh = 0;
        maxh = 180;
        mins = 0;
        maxs = 43;
        minv = 46;
        maxv = 220;
        break;
    case ‘W‘:
        minh = 0;
        maxh = 180;
        mins = 0;
        maxs = 30;
        minv = 221;
        maxv = 255;
        break;
    case ‘R‘:
        minh = 0;
        maxh = 10;
        mins = 43;
        maxs = 255;
        minv = 46;
        maxv = 255;
        break;
    case ‘O‘:
        minh = 11;
        maxh = 25;
        mins = 43;
        maxs = 255;
        minv = 46;
        maxv = 255;
        break;
    case ‘Y‘:
        minh = 26;
        maxh = 25;
        mins = 43;
        maxs = 255;
        minv = 46;
        maxv = 255;
        break;
    case ‘G‘:
        minh = 35;
        maxh = 77;
        mins = 43;
        maxs = 255;
        minv = 46;
        maxv = 255;
        break;
    case ‘L‘:
        minh = 100;
        maxh = 124;
        mins = 43;
        maxs = 255;
        minv = 46;
        maxv = 255;
        break;
    case ‘P‘:
        minh = 125;
        maxh = 155;
        mins = 43;
        maxs = 255;
        minv = 46;
        maxv = 255;
        break;
    default:
        cout << "输入错误" << endl;
        exit(0);
    }
}

int main(   )
{
    VideoCapture capture(0);
    Mat special;
    helptext();

    char color;
    cin >> color;
    deal(color);
    while(1){
        Mat frame;              //存储每一帧的图像
        capture >> frame;       //读取当前帧
        Mat fhsv;
        cvtColor(frame,fhsv,COLOR_BGR2HSV);   //将图像转换为HSV模型

        inRange(fhsv,Scalar(minh,mins,minv),Scalar(maxh,maxs,maxv),special);          //找寻在要求区间内的颜色
        imshow("ABC",special);
        if(waitKey(30) >= 0)break;
    }

    return 0;
}
时间: 2024-12-21 03:32:59

OpenCV——视频颜色识别的相关文章

opencv颜色识别代码分享

android 平台 opencv 实现颜色识别代码:http://www.eyesourcecode.com/thread-40682-1-1.htmlopencv的颜色识别简单实现的代码:http://www.eyesourcecode.com/thread-39765-1-1.html更多OpenCV源码免费下载:http://www.eyesourcecode.com/forum-OpenCV-1.html

python使用opencv实现人脸识别系统

1.首先安装过python环境,在这里就不过说    检测是否安装成功如下,在cmd中输入Python     2.安装numpy 现在开始安装numpy,打开cmd,输入pip install numpy 我的电脑已经安装过了,忘记截屏了.就在网上找了图片 测试是否成功 3.安装opencv 在官网自行下载,这里下载的是opencv2.4.10安装. ### (1)复制cv2.pyd 将"\opencv\build\python\2.7\x64"或"\opencv\buil

基于QT和OpenCV的人脸识别系统

1 系统方案设计 1.1 引言 人脸是一个常见而复杂的视觉模式,人脸所反映的视觉信息在人与人的交流和交往中有着重 要的作用和意义,对人脸进行处理和分析在视频监控.出入口控制.视频会议以及人机交互等领 域都有着广泛的应用前景,因此是模式识别和计算机视觉领域持续的研究热点. 本系统在 FriendlyARM Tiny6410 开发板基础上,利用 OpenCV 计算机视觉库和 QT 图形库,通 过普通的 USB 摄像头实现了自动人脸识别,准确率较高,方便易用. 1.2 系统总体架构 "人脸识别&quo

基于 OpenCV 的人脸识别

基于 OpenCV 的人脸识别 一点背景知识 OpenCV 是一个开源的计算机视觉和机器学习库.它包含成千上万优化过的算法,为各种计算机视觉应用提供了一个通用工具包.根据这个项目的关于页面,OpenCV 已被广泛运用在各种项目上,从谷歌街景的图片拼接,到交互艺术展览的技术实现中,都有 OpenCV 的身影. OpenCV 起始于 1999 年 Intel 的一个内部研究项目.从那时起,它的开发就一直很活跃.进化到现在,它已支持如 OpenCL 和 OpenGL 的多种现代技术,也支持如 iOS

关于opencv中人脸识别主函数的部分注释详解。

近段时间在搞opencv的视频人脸识别,无奈自带的分类器的准确度,实在是不怎么样,但又能怎样呢?自己又研究不清楚各大类检测算法. 正所谓,功能是由函数完成的,于是自己便看cvHaarDetectObjects 这个识别主函数的源代码,尝试了解并进行改造它,以提高精确度. 可惜实力有限啊,里面的结构非常复杂,参杂着更多的函数体,有一些是网上找不到用法的,导致最终无法整体了解,只搞了一般,这里分享 下我自己总结的注释. 1 CvSeq* cvHaarDetectObjects( const CvAr

【7.6】..即颜色识别。

提纲 题目要求 程序代码 结果图片 要言妙道 借鉴参考 题目要求: 程序代码: 结果图片: 要言妙道: ①可以通过掩码操作来抓取手掌所在区域的直方图,也可以使用类似Cognex拖拽矩形的方式选取兴趣区域,获得目标颜色直方图,利用本章内容,实现颜色识别 ② 前几道题“肤色直方图”的计算不准确,应该用本题这种方式 借鉴参考: 反向投影_OpenCV中文论坛教程

颜色传感器TCS230及颜色识别电路(转)

摘要 TCS230是美国TAOS公司生产的一种可编程彩色光到频率的传感器.该传感器具有分辨率高.可编程的颜色选择与输出定标.单电源供电等特点:输出为数字量,可直接与微处理器连接.文中主要介绍TCS230的原理和应用,以及色光和白平衡的知识,并用一个实例说明TCS230识别颜色的过程. 关键词 TCS23 0颜色传感器 颜色识别 白平衡调整 引言 随着现代工业生产向高速化.自动化方向的发展,生产过程中长期以来由人眼起主导作用的颜色识别工作将越来越多地被相应的颜色传感器所替代.例如:图书馆使用颜色区

【7.6】..即颜色识别

提纲 题目要求 程序代码 结果图片 要言妙道 题目要求: 程序代码: 结果图片: 要言妙道: ①可以通过掩码操作来抓取手掌所在区域的直方图,也可以使用类似Cognex拖拽矩形的方式选取兴趣区域,获得目标颜色直方图,利用本章内容,实现颜色识别 ② 前几道题“肤色直方图”的计算不准确,应该用本题这种方式

OpenCV 视频处理框架

OpenCV 本身集成了 FFmpeg,因此对于视频是有解码和编码功能的.虽然其效率在本人看来还不能跟未被封装的FFmpeg相提并论,然用其来对视频进行解码得到图像,然后对图像进行处理并将得到的图像重新压缩成视频是非常方便的,下面将介绍将视频解码成图像并进行帧差法等操作的框架搭建,虽然没有介绍如何反向压缩成视频,但其操作也是非常类似的,不过需要注意的是在OpenCV2.1版本图像压缩成视频记得是有BUG的,最好还是用新的版本来进行学习. #include <afxwin.h> #include