資源簡介
K-means.rar

代碼片段和文件信息
#include?“opencv2/opencv.hpp“
#include?
#include?
#include?
using?namespace?std;
using?namespace?cv;
struct?CLASS_MEAN_POINT
{
float?num; /*?類中點數(shù)?*/
int?RGBAve[3]; /*?類的BGR均值?*/
}?;
const?int?Cnum?=?5;
int?classd[?Cnum?]?=?{0};
void?ini?(?CLASS_MEAN_POINT?*?classmean?);
void?copyclass?(??CLASS_MEAN_POINT?*?classmean1?CLASS_MEAN_POINT?*?classmean2?);
int?initialize?(?CLASS_MEAN_POINT?*?classmean?unsigned?char?*?pixellabel?Mat&?SourceImage?);
int?calculate?(?CLASS_MEAN_POINT?*?classmean0?CLASS_MEAN_POINT?*?classmeanunsigned?char?*?pixellabel?Mat&?SourceImage?);
int?clusterresult?(?CLASS_MEAN_POINT?*?classmean0?unsigned?char?*?pixellabel?Mat&?ResultImage?Mat&?SourceImage?);
int?result?(?CLASS_MEAN_POINT?*?classmean0?unsigned?char?*?pixellabel?Mat&?ResultImage?Mat&?SourceImage?int?B?int?G?int?R?);?/*?將路牌外的區(qū)域設(shè)置為白色?*/
int?main?(?int?argc?char*?argv[]?)
{
CLASS_MEAN_POINT?*?classmean0?=?NULL;
CLASS_MEAN_POINT?*?classmean?=?NULL;
Mat?SourceImage?ResultImage;
unsigned?char?*?pixellabel?=?NULL;
if?(?argc!=2?)
{
cout<“Can‘t?open?the?image!?“< return?-1;
}
SourceImage?=?imread(??argv[1]?);
classmean0?=?new?CLASS_MEAN_POINT?[?Cnum?];
classmean?=?new?CLASS_MEAN_POINT?[?Cnum?];
pixellabel?=?new?unsigned?char?[?SourceImage.cols?*?SourceImage.rows?]?;
ResultImage.create(?SourceImage.rows?SourceImage.cols?SourceImage.type()?);
ini?(?classmean0?);
ini?(?classmean?);
initialize(?classmean0?pixellabel?SourceImage?);
int?stop?=?0;
int?num?=?0;
while?(?stop?!=?Cnum?)
{
stop?=?0;
calculate?(?classmean0?classmean?pixellabel?SourceImage?);
for?(?int?k?=?0;?k? {
if?(?classmean0[k].RGBAve[0]?==?classmean[k].RGBAve[0]?&&?
classmean0[k].RGBAve[1]?==?classmean[k].RGBAve[1]?&&?
classmean0[k].RGBAve[2]?==?classmean[k].RGBAve[2]?)
stop?+=?1;
}
copyclass?(?classmean?classmean0?);
num?++;
}
cout<<“一共分為“< ?
clusterresult?(?classmean0?pixellabel?ResultImage?SourceImage?);
? imshow(?“Cluster?Image“?ResultImage?);
/*int?*greyk?=?new?int[Cnum];
int?ming?=?255?minl?=?0;
for(?int?i?=?0;?i {
cout<<“第“< cout< greyk[i]?=?(classmean0[i].RGBAve[0]+classmean0[i].RGBAve[1]+classmean0[i].RGBAve[2])/3;
cout< if?(?greyk[i]? {
ming?=?greyk[i];
minl?=?i;
}
}*/
for(?int?i?=?0;?i {
cout<<“?第?“< cout< }
cout<<“請輸入路牌所屬類的B均值:“< int?B?G?R;
? cin>>B;
? cout<<“請輸入路牌所屬類的G均值:“< ? cin>>G;
? cout<<“請輸入路牌所屬類的R均值:“< ? cin>>R;
//result?(??classmean0?pixellabel??ResultImage??SourceImage?classmea
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件??????59392??2015-04-17?13:17??K-means\Debug\K-means.exe
?????文件?????499676??2015-04-17?13:17??K-means\Debug\K-means.ilk
?????文件????1371136??2015-04-17?13:17??K-means\Debug\K-means.pdb
?????文件???????4197??2015-04-14?19:50??K-means\K-means\K-means.vcxproj
?????文件????????942??2015-04-14?19:50??K-means\K-means\K-means.vcxproj.filters
?????文件????????143??2015-04-14?19:47??K-means\K-means\K-means.vcxproj.user
?????文件???????7453??2015-04-17?13:16??K-means\K-means\main.cpp
?????文件???13848576??2015-04-17?13:17??K-means\K-means.sdf
?????文件????????888??2015-04-14?19:48??K-means\K-means.sln
????..A..H.?????11264??2015-04-17?13:17??K-means\K-means.suo
?????目錄??????????0??2015-04-17?13:18??K-means\Debug
?????目錄??????????0??2015-04-17?13:18??K-means\K-means
?????目錄??????????0??2015-04-17?13:18??K-means
-----------?---------??----------?-----??----
?????????????15803667????????????????????13
- 上一篇:20113022.pdf
- 下一篇:WindTurbineBlockset.rar
評論
共有 條評論