資源簡介
利用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個文件信息
評論
共有 條評論