資源簡介
讀取常見bmp格式圖像 利用k均值聚類 模糊C均值聚類對遙感圖像進行分類分析

代碼片段和文件信息
//?ClusterAnalysis.cpp:?implementation?of?the?CClusterAnalysis?class.
//
//////////////////////////////////////////////////////////////////////
#include?“stdafx.h“
#include?“ImageSeg.h“
#include?“ClusterAnalysis.h“
#include?“FuzzyClusterDLG.h“
#include?“MOHUCDLG.h“
#include?“ISODATADLG.h“
#include?“math.h“
#include?“CDib.h“
#ifdef?_DEBUG
#undef?THIS_FILE
static?char?THIS_FILE[]=__FILE__;
#define?new?DEBUG_NEW
#endif
//////////////////////////////////////////////////////////////////////
//?Construction/Destruction
//////////////////////////////////////////////////////////////////////
extern?BOOL?CopyDIB(CDib*?pDibSrc?CDib*?pDibDst);
CClusterAnalysis::CClusterAnalysis()
{
}
CClusterAnalysis::~CClusterAnalysis()
{
delete?markDib;
markDib?=?NULL;
}
/********************************************************************************
函數名稱:KMean()
傳遞參數:CDib?*pDib?int?nClusterCount
實現功能:采用K均值聚類算法實現對8bit灰度圖像和24bit彩色圖像的分割
返回值類型:BOOL
*********************************************************************************/
BOOL?CClusterAnalysis::KMean(CDib?*pDib?int?nClusterCount)
{
m_Cluster?=?new?Cluster[nClusterCount];
m_Cluster3?=?new?ColorCluster[nClusterCount];
? int?i;??????????????????????????????//循環變量
int?sizex;????????????????????????????
int?sizey;
BOOL?bCenterChanged;???//定義聚類中心是否更改標志
bCenterChanged?=?1;
InitCluster(m_Cluster?nClusterCount?256);??//初始化各類
?
markDib?=?new?CDib;?
?
int?nCacuCount;
nCacuCount?=?0;
?
::SetCursor(::LoadCursor(NULL?IDC_WAIT));???//將鼠標箭頭置為等待狀態
::CopyDIB(pDib?markDib);??//mark?every?pixel‘s?cluster
while(bCenterChanged)??//如果聚類中心沒有改變則退出循環
{
//////////////////////////////////////
//彩色圖像各類的RGB分量象素個數及象素總值置為0
for(i?=?0;?i? {
m_Cluster3[i].B.pixCount?=?0;
m_Cluster3[i].B.valueSum?=?0;
m_Cluster3[i].G.pixCount?=?0;
m_Cluster3[i].G.valueSum?=?0;
m_Cluster3[i].R.pixCount?=?0;
m_Cluster3[i].R.valueSum?=?0;
}
????????///////////////////////////////////////
SingleClassify(pDib?m_Cluster?nClusterCount?markDib);?//分別對各樣本進行分類
bCenterChanged?=?CacuNewCenter(m_Cluster?nClusterCount);?//計算新的聚類中心并判斷聚類中心是否改變
????? nCacuCount++;??//迭代次數自增1次
}
::SetCursor(::LoadCursor(NULL?IDC_ARROW));??//置鼠標為箭頭符號
??? ShowCluster(pDib?m_Cluster?nClusterCount?markDib);??//顯示聚類結果
?
?
return?1;
}
/**************************************************
函數名稱:InitCluster()
傳遞參數:Cluster?*cluster?int?nCount?int?nRange
實現功能:初始化各類的聚類中心,可用于對8bit和24bit圖像進行初始化
返回值類型:viud
*****************************************************/
void?CClusterAnalysis::InitCluster(Cluster?*cluster?int?nCount?int?nRange)
{
int?k;
int?nInterval;
nInterval?=?nRange?/?(nCount?+?1);??//Caculate?the?interval?between?each?cluster?
for(k?=?1;?k? {
cluster[k?-?1].center?=?nInterval?*?k;?
cluster[k?-?1].pixCount?=?0;
cluster[k?-?1].valueSum?=?0;
?
//for?the?24bit?BMP
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件?????251078??2014-11-26?19:46??ImageSeg\0遙感灰度圖像(500×5001).bmp
?????文件?????251078??2014-11-26?19:46??ImageSeg\0遙感灰度圖像(500×500).bmp
?????文件?????251078??2006-10-11?08:51??ImageSeg\0遙感灰度圖像(500×500)1
?????文件?????251078??2006-10-11?08:52??ImageSeg\0遙感灰度圖像(500×500)1.bmp
?????文件??????52924??2014-11-26?19:15??ImageSeg\CDIB.CPP
?????文件???????4125??2005-07-04?18:41??ImageSeg\CDIB.H
?????文件???????1262??2006-09-21?21:51??ImageSeg\CloudConcept.txt
?????文件??????26512??2006-07-17?11:32??ImageSeg\ClusterAnalysis.cpp
?????文件???????1816??2006-05-11?18:19??ImageSeg\ClusterAnalysis.h
?????文件??????74563??2014-11-26?19:15??ImageSeg\Debug\CDIB.obj
?????文件??????????0??2014-11-26?19:15??ImageSeg\Debug\CDIB.sbr
?????文件??????41107??2014-11-25?16:35??ImageSeg\Debug\ClusterAnalysis.obj
?????文件??????????0??2014-11-25?16:35??ImageSeg\Debug\ClusterAnalysis.sbr
?????文件??????11406??2014-11-25?16:35??ImageSeg\Debug\FuzzyClusterDLG.obj
?????文件??????????0??2014-11-25?16:35??ImageSeg\Debug\FuzzyClusterDLG.sbr
?????文件????5202944??2014-11-26?19:15??ImageSeg\Debug\ImageSeg.bsc
?????文件?????168043??2014-11-26?19:15??ImageSeg\Debug\ImageSeg.exe
?????文件?????431104??2014-11-26?19:15??ImageSeg\Debug\ImageSeg.ilk
?????文件??????29887??2014-11-25?16:35??ImageSeg\Debug\ImageSeg.obj
?????文件????6871256??2014-11-25?16:35??ImageSeg\Debug\ImageSeg.pch
?????文件?????558080??2014-11-26?19:15??ImageSeg\Debug\ImageSeg.pdb
?????文件???????8816??2014-11-25?16:35??ImageSeg\Debug\ImageSeg.res
?????文件??????????0??2014-11-25?16:35??ImageSeg\Debug\ImageSeg.sbr
?????文件??????17025??2014-11-25?16:35??ImageSeg\Debug\ImageSegDoc.obj
?????文件??????????0??2014-11-25?16:35??ImageSeg\Debug\ImageSegDoc.sbr
?????文件??????36759??2014-11-25?16:35??ImageSeg\Debug\ImageSegView.obj
?????文件??????????0??2014-11-25?16:35??ImageSeg\Debug\ImageSegView.sbr
?????文件??????11477??2014-11-25?16:35??ImageSeg\Debug\ISODATADLG.obj
?????文件??????????0??2014-11-25?16:35??ImageSeg\Debug\ISODATADLG.sbr
?????文件??????11194??2014-11-25?16:35??ImageSeg\Debug\KMeansDlg.obj
............此處省略54個文件信息
- 上一篇:圖像處理畢業論文含程序、論文、答辯ppt、翻譯等一套
- 下一篇:湍流的模擬
評論
共有 條評論