资源简介
利用HSV和HSI颜色空间中的颜色范围,来检测图片中的黄色区域和蓝色区域。用两种方法来统计图片中黄色区域和蓝色区域的像素点个数。对于使用颜色检测蓝牌和黄牌具有一定的借鉴作用
代码片段和文件信息
#include “cv.h“
#include “highgui.h“
#include “cxcore.h“
#include
using namespace std;
using namespace cv;
#define M_PIR 0.159f
vector RGBtoHSV(Mat &matRoiMat &matRed);
vector RGBtoHSI(Mat &matRoiMat &matRed);
int main(int argcchar*argv[])
{
Mat frame=imread(“15.jpg“);
/************************************************************************************/
Mat matRedMask(frame.size()CV_8UC1Scalar(0));
vector number=RGBtoHSV(framematRedMask);
int nRedNum=number.at(0);
int nBlueNum=number.at(1); //存放红色点和蓝色点的个数
int nYellowNum=number.at(2); //存放黄色点个数
cout<<“nRedNum=“< cout<<“nBlueNum=“< cout<<“nYellowNum=“< imshow(“matRedMaskhsv“matRedMask);
/**************************************************************************************/
Mat matRed(frame.size()CV_8UC1Scalar(0));
vector num=RGBtoHSI(framematRed);
int nRedNum1=num.at(0);
int nBlueNum1=num.at(1); //存放红色点和蓝色点的个数
int nYellowNum1=num.at(2); //存放黄色点个数
cout<<“nRedNum1=“< cout<<“nBlueNum1=“< cout<<“nYellowNum1=“< imshow(“matRedhsi“matRed);
/**************************************************************************************/
imshow(“frame“frame);
waitKey();
return 0;
}
vector RGBtoHSV(Mat &matRoiMat &matRed)
{
int nRedNum=0; //红色像素点个数
int nBlueNum=0; //蓝色像素点个数
int nYellowNum=0; //黄色像素点个数
Mat matHsv;
vector vecResult;
cvtColor(matRoimatHsv CV_BGR2HSV);
//Mat matBlue(matRoi.size()CV_8UC1Scalar(0));
//Mat matYellow(matRoi.size()CV_8UC1Scalar(0));
//matRed.convertTo(matRedCV_32FC1);
for(int i=0;i {
for(int j=0;j {
Vec3b vec3=matHsv.at(ij);
int nHVal = vec3.val[0]; //除以255,归一化[01]区间 1/255=0.003921
int nSVal = vec3.val[1];
int nVVal = vec3.val[2];
//计算红色像素点
bool bIsred = ((nHVal >0&&nHVal < 7)||(nHVal > 150&&nHVal < 180) ) && (nSVal> 60)&& (nVVal > 65&&nVVal < 180);
if( bIsred )
{
//matRed.at(ij) = 255; //是红色像素,就赋值255
nRedNum++;
}
/*else
{
matRed.at(ij) = 0;
}*/
//计算蓝色像素点
bool bIsBlue=(nHVal > 100&&nHVal<125)&&(nSVal> 48&&nSVal<180)&& (nVVal > 30&&nVVal < 200);
if( bIsBlue )
{
//matBlue.at(ij) = 255;
nBlueNum++; //统计蓝色像素的个数
}
/*else
{
matBlue.at(ij) = 0;
}*/
//计算黄色像素点个数
//bool bIsYellow=(((fHVal < 0.25f)&&(fHVal > 0.02f))||((fHVal > 0.60f)&&(fHVal <0.98f) )) && (fSVal >0.45f)&& (fIVal > 0.32f)&& (fIVal <0.85f);
// bool bIsYellow=(nHVal > 30&&nHVal<80)&&(nSVal> 65&&nSVal<180)&& (nVVal > 70&&nVVal < 200);
bool bIsYellow=((nHVal <32&&nHVal >23)/*||((nHVal > 110)&&(nHVal
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2015-11-19 15:20 yanse\
目录 0 2015-11-19 15:20 yanse\Debug\
文件 80896 2015-11-16 17:37 yanse\Debug\yanse.exe
文件 406 2015-11-16 09:39 yanse\Debug\yanse.exe.manifest
文件 4612812 2015-11-16 17:37 yanse\Debug\yanse.ilk
文件 1911808 2015-11-16 17:37 yanse\Debug\yanse.pdb
目录 0 2015-11-16 13:37 yanse\ipch\
目录 0 2015-11-16 13:37 yanse\ipch\yanse-ca69122c\
文件 56557568 2015-11-16 13:37 yanse\ipch\yanse-ca69122c\yanse-c0bb3d8c.ipch
目录 0 2015-11-19 15:20 yanse\yanse\
文件 35381 2015-11-16 10:31 yanse\yanse\111.jpg
文件 65314 2015-11-16 16:13 yanse\yanse\113.jpg
文件 37265 2015-11-16 16:46 yanse\yanse\114.jpg
文件 28543 2015-09-02 16:29 yanse\yanse\14.jpg
文件 69414 2015-09-02 16:28 yanse\yanse\15.jpg
文件 42729 2015-09-02 16:32 yanse\yanse\17.jpg
文件 51073 2015-09-02 16:36 yanse\yanse\20.jpg
目录 0 2015-11-19 15:20 yanse\yanse\Debug\
文件 18896 2015-11-16 17:37 yanse\yanse\Debug\CL.read.1.tlog
文件 352 2015-11-16 17:37 yanse\yanse\Debug\CL.write.1.tlog
文件 662 2015-11-16 17:37 yanse\yanse\Debug\cl.command.1.tlog
文件 2 2015-11-16 17:37 yanse\yanse\Debug\li
文件 2 2015-11-16 17:37 yanse\yanse\Debug\li
文件 2 2015-11-16 17:37 yanse\yanse\Debug\li
文件 2 2015-11-16 17:37 yanse\yanse\Debug\li
文件 2 2015-11-16 17:37 yanse\yanse\Debug\li
文件 2 2015-11-16 17:37 yanse\yanse\Debug\li
文件 2 2015-11-16 17:37 yanse\yanse\Debug\li
文件 2 2015-11-16 17:37 yanse\yanse\Debug\li
文件 2 2015-11-16 17:37 yanse\yanse\Debug\li
文件 2 2015-11-16 17:37 yanse\yanse\Debug\li
............此处省略22个文件信息
相关资源
- opencv视觉测距
- 基于Qt和opencv的身份证号码识别系统
- opencv_ffmpeg249.dll
- SfM稀疏三维点云重建--完整工程文件
- 基于opencv的数人头程序源代码
- 最简单的基于FFmpeg的libswscale的教程
- 利用OpenCV中的Stitcher类实现全景图像拼
- opencv实现的sift算法源码,包含了图像
- openCV 上的小波变换
- 基于OPENCV的车牌识别系统设计
- 617张国内车牌60-17bmp图片用于OpenCV正样
- hog特征提取,c版本代码
- 基于Qt5.8+OpenCV3.2的Basler多相机触发开
- 基于Opencv实现的图像纠偏
- ImageWatch2019.vsix
- SIFT特征提取+匹配
- 颜色提取工具,可以方便提取出某一
- 简单\“(8bit)Raw图像文件转换为(
- 基于SIFT算法的图像拼接.rar
- opencv4.1.1+contrib完整版.zip
- OpenCV3.3+contrib-master,VS2013编译后的l
- OpenCV2.4.10官方完整版
- 基于OpenCV3.0的手势识别.rar
- 基于opencv的车牌识别源码
- Firmware_F103 V1.3.rar
- VS2017+opencv写的火焰检测带检测视频哦
- opencv图像处理方法总结.pdf
- bumblebee双目标定/伪彩色深度图/鼠标测
- OpenCV中对图片进行灰度处理
- 车牌识别系统原创+详细注释版+少函数
评论
共有 条评论