资源简介
读取常见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 < nClusterCount; 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 < nCount + 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、翻译等一套
- 下一篇:湍流的模拟
相关资源
- WSN中质心定位算法和基于移动锚节点
- 国密算法文档和代码。基于openssl实现
- STM32贪吃蛇游戏源代码
- 模糊聚类分析的应用论文整理
- 动态规划算法经典例题
- 李春葆算法书籍加密课件
- 椭圆曲线算法入门
- QP算法中用到的资源
- 数值最优化
- NEC算法数字水印_源代码
- VMD译文.docx
- 车间调度及其遗传算法
- 基于稀疏表示的图像去噪算法
- 多QOS约束的组播路由优化算法
- 粒子群算法在图像处理中的应用
- 广工高性能计算期末论文-翻译论文
- 硕士论文心电信号预处理算法研究
- 王秋芬 算法设计与分析完整版
- 基于聚类Kmeans算法实现客户价值分析
- 山东大学软件学院算法设计与分析手
- 智能优化算法及其应用 王凌
- Scala程序员面试算法宝典.pdf
- ESPRIT算法及估计性能误差分析
- 机器学习算法校招面试题库附答案与
- 计算几何算法与应用中文第三版
- 算法导论英文第三版
- 哈工大软件学院算法分析与设计课程
- 操作系统实验之动态分区算法首次适
- 进化算法进化各种pdf版
- 数据结构经典算法代码实现
评论
共有 条评论