91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 8.95MB
    文件類型: .zip
    金幣: 2
    下載: 0 次
    發布日期: 2023-11-10
  • 語言: C/C++
  • 標簽: FCM??C+??

資源簡介

模糊C均值的C++實現,有很詳細的代碼解釋,運行需要配置OpenCV340,各種踩坑,希望大家學習愉快,附帶理論地址,代碼配合公式能夠更好的學習哦https://blog.csdn.net/qq_41828351/article/details/88402605

資源截圖

代碼片段和文件信息

//?FCM.cpp?:?此文件包含?“main“?函數。程序執行將在此處開始并結束。
//

#include?“pch.h“
#include?
#include?

void?myFCMeans(float*?pSamples?int*?pClusterResult?int?clusterNum?int?sampleNum?int?featureNum?int?m_Value);

int?main()
{
#define?MAX_CLUSTERS?5
//CvScalar?color_tab[MAX_CLUSTERS];
cv::Scalar?color_tab[MAX_CLUSTERS];
IplImage*?img?=?cvCreateImage(cvSize(500?500)?IPL_DEPTH_8U?3);
CvRNG?rng?=?cvRNG(cvGetTickCount());
cv::Point?ipt;

//color_tab[0]?=?CV_RGB(255?0?0);
color_tab[0]?=?cv::Scalar(255?0?0);
color_tab[1]?=?CV_RGB(0?255?0);
color_tab[2]?=?CV_RGB(100?100?255);
color_tab[3]?=?CV_RGB(255?0?255);
color_tab[4]?=?CV_RGB(255?255?0);


int?i?k;
int?clusterNum?=?cvRandInt(&rng)?%?MAX_CLUSTERS?+?2; //至少有兩類
int?sampleNum?=?cvRandInt(&rng)?%?1000?+?100; //至少100個點
int?feaNum?=?2;??//特征維度
CvMat*?sampleMat?=?cvCreateMat(sampleNum?1?CV_32FC2);
/*?generate?random?sample?from?multigaussian?distribution?*/
//產生高斯隨機數
//隨機生成樣本多元高斯分布
//樣本總數為sample_count?類別總數為cluster_count
//樣本矩陣為points先按類別分成cluster_count份?每一份數據的個數為sample_count/cluster_count
//然后按類別隨機矩陣填充樣本矩陣第一類填充矩陣的0~sample_count/cluster_count行
//第二類填充樣本矩陣的sample_count/cluster_count~sample_count/cluster_count*2行以此類推直到填充滿所有矩陣每一類的樣本個數是一樣的
for?(k?=?0;?k? {
CvPoint?center;
int?topIndex?=?k?*?sampleNum?/?clusterNum;??//填充的索引
int?bottomIndex?=?(k?==?clusterNum?-?1???sampleNum?:?(k?+?1)*sampleNum?/?clusterNum);

CvMat*?localMat?=?cvCreateMatHeader(bottomIndex?-?topIndex?1?CV_32FC2);
center.x?=?cvRandInt(&rng)?%?img->width;
center.y?=?cvRandInt(&rng)?%?img->height;
//返回數組在一定跨度的行
//points為輸入數組point_chunk返回數組
//開始行為k*sample_count/cluster_count
//結束行為?當k==?cluster-1時?為?第samplecount行?否則為(k+1)*sample_count/cluster_count
cvGetRows(sampleMat?localMat?topIndex?bottomIndex?1); //此函數不會給localMat分配空間不包含bottomIndex,其實localMat已經和得到的幾行數據進行了綁定
//point_chunk輸出數組CV_RAND_NORMAL分布類型為正態分布或者高斯分布
//cvScalar(center.xcenter.y00)隨機數的平均值
//?cvScalar(img->width/6img->height/600)如果是正態分布它是隨機數的標準差
cvRandArr(&rng?localMat?CV_RAND_NORMAL
cvScalar(center.x?center.y?0?0)
cvScalar(img->width*0.1?img->height*0.1?0?0));???//在這里隨機就相當于在給sampleMat賦值
}

//?shuffle?samples?混亂數據
for?(i?=?0;?i? {
CvPoint2D32f*?pt1?=?(CvPoint2D32f*)sampleMat->data.fl?+?cvRandInt(&rng)?%?sampleNum;
CvPoint2D32f*?pt2?=?(CvPoint2D32f*)sampleMat->data.fl?+?cvRandInt(&rng)?%?sampleNum;
CvPoint2D32f?temp;
CV_SWAP(*pt1?*pt2?temp);
}

float*?pSamples?=?new?float[sampleNum?*?feaNum];??//大小等于特征維度乘以樣本數
int*?pClusters?=?new?int[sampleNum];
for?(i?=?0;?i? {
//feaNum=2???將二維數據作為數據集
pSamples[i*feaNum]?=?(cvGet2D(sampleMat?i?0)).val[0];
pSamples[i*feaNum?+?1]?=?(cvGet2D(sampleMat?i?0)).val[1];
}
cvReleaseMat(&sampleMat);??//數據集制作完畢,釋放內存

cvZero(img);??//初始化圖片
for?(i?=?0;?i? {
//fe

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2019-03-05?16:28??FCM\.vs\
?????目錄???????????0??2019-03-05?16:28??FCM\.vs\FCM\
?????目錄???????????0??2019-03-11?16:18??FCM\.vs\FCM\v15\
?????文件???????26624??2019-03-11?16:18??FCM\.vs\FCM\v15\.suo
?????文件????22171648??2019-03-11?16:18??FCM\.vs\FCM\v15\Browse.VC.db
?????目錄???????????0??2019-03-05?20:53??FCM\.vs\FCM\v15\ipch\
?????文件??????327680??2019-03-05?16:28??FCM\.vs\FCM\v15\ipch\29c714a186fa55df.ipch
?????目錄???????????0??2019-03-07?15:40??FCM\.vs\FCM\v15\ipch\AutoPCH\
?????文件??????327680??2019-03-11?16:18??FCM\.vs\FCM\v15\ipch\cfd589cfd835b35a.ipch
?????文件????????1422??2019-03-05?16:28??FCM\FCM.sln
?????目錄???????????0??2019-03-07?14:42??FCM\FCM\
?????文件???????32356??2019-03-06?14:56??FCM\FCM\clusters.jpg
?????文件???????10378??2019-03-07?14:42??FCM\FCM\FCM.cpp
?????文件????????8538??2019-03-05?16:31??FCM\FCM\FCM.vcxproj
?????文件????????1151??2019-03-05?16:28??FCM\FCM\FCM.vcxproj.filters
?????文件?????????165??2019-03-05?16:28??FCM\FCM\FCM.vcxproj.user
?????文件???????28914??2019-03-11?16:18??FCM\FCM\origin.jpg
?????文件?????????200??2019-03-05?16:28??FCM\FCM\pch.cpp
?????文件?????????639??2019-03-05?16:28??FCM\FCM\pch.h
?????目錄???????????0??2019-03-05?16:31??FCM\FCM\x64\
?????目錄???????????0??2019-03-11?16:17??FCM\FCM\x64\Debug\
?????文件?????????613??2019-03-11?16:17??FCM\FCM\x64\Debug\FCM.log
?????文件??????437079??2019-03-11?16:17??FCM\FCM\x64\Debug\FCM.obj
?????文件?????2031616??2019-03-05?16:31??FCM\FCM\x64\Debug\FCM.pch
?????目錄???????????0??2019-03-11?16:17??FCM\FCM\x64\Debug\FCM.tlog\
?????文件????????1490??2019-03-11?16:17??FCM\FCM\x64\Debug\FCM.tlog\CL.command.1.tlog
?????文件???????30106??2019-03-11?16:17??FCM\FCM\x64\Debug\FCM.tlog\CL.read.1.tlog
?????文件?????????990??2019-03-11?16:17??FCM\FCM\x64\Debug\FCM.tlog\CL.write.1.tlog
?????文件?????????206??2019-03-11?16:17??FCM\FCM\x64\Debug\FCM.tlog\FCM.lastbuildstate
?????文件????????1330??2019-03-11?16:17??FCM\FCM\x64\Debug\FCM.tlog\link.command.1.tlog
?????文件????????2644??2019-03-11?16:17??FCM\FCM\x64\Debug\FCM.tlog\link.read.1.tlog
............此處省略9個文件信息

評論

共有 條評論