OpenCV识别指定颜色(黑、灰、白、红、橙、黄、绿、青、蓝、紫)
发布日期:2021-06-30 10:57:11 浏览次数:2 分类:技术文章

本文共 1661 字,大约阅读时间需要 5 分钟。

根据HSV色域的特点,进行识别,关于HSV色域,请看这篇博文

 

素材如下:

运行截图如下:

源码如下:

#include 
#include
#include
#include
#include
#include
using namespace std;using namespace cv;void main(){ Mat matSrc=imread("purple.png",IMREAD_UNCHANGED); Mat matHsv; cvtColor(matSrc,matHsv,COLOR_BGR2HSV); vector
colorVec; colorVec.push_back(matHsv.at
(0,0)); colorVec.push_back(matHsv.at
(0,1)); colorVec.push_back(matHsv.at
(0,2)); if((colorVec[0]>=0&&colorVec[0]<=180) &&(colorVec[1]>=0&&colorVec[1]<=255) &&(colorVec[2]>=0&&colorVec[2]<=46)){ cout<<"黑"<
=0&&colorVec[0]<=180) &&(colorVec[1]>=0&&colorVec[1]<=43) &&(colorVec[2]>=46&&colorVec[2]<=220)){ cout<<"灰"<
=0&&colorVec[0]<=180) &&(colorVec[1]>=0&&colorVec[1]<=30) &&(colorVec[2]>=221&&colorVec[2]<=255)){ cout<<"白"<
=0&&colorVec[0]<=10)||(colorVec[0]>=156&&colorVec[0]<=180)) &&(colorVec[1]>=43&&colorVec[1]<=255) &&(colorVec[2]>=46&&colorVec[2]<=255)){ cout<<"红"<
=11&&colorVec[0]<=25) &&(colorVec[1]>=43&&colorVec[1]<=255) &&(colorVec[2]>=46&&colorVec[2]<=255)){ cout<<"橙"<
=26&&colorVec[0]<=34) &&(colorVec[1]>=43&&colorVec[1]<=255) &&(colorVec[2]>=46&&colorVec[2]<=255)){ cout<<"黄"<
=35&&colorVec[0]<=77) &&(colorVec[1]>=43&&colorVec[1]<=255) &&(colorVec[2]>=46&&colorVec[2]<=255)){ cout<<"绿"<
=78&&colorVec[0]<=99) &&(colorVec[1]>=43&&colorVec[1]<=255) &&(colorVec[2]>=46&&colorVec[2]<=255)){ cout<<"青"<
=100&&colorVec[0]<=124) &&(colorVec[1]>=43&&colorVec[1]<=255) &&(colorVec[2]>=46&&colorVec[2]<=255)){ cout<<"蓝"<
=125&&colorVec[0]<=155) &&(colorVec[1]>=43&&colorVec[1]<=255) &&(colorVec[2]>=46&&colorVec[2]<=255)){ cout<<"紫"<

下面将利用Qt与Python进行动态屏幕颜色识别!

转载地址:https://it1995.blog.csdn.net/article/details/83056346 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:Python工作笔记-往dll中传入char*类型的参数并且如何接收char*的值
下一篇:VS2012生成C的dll并调用以及Python调用C的DLL

发表评论

最新留言

关注你微信了!
[***.104.42.241]2024年04月13日 15时48分47秒