资源简介
基于c++的马氏距离算法代码,应用于对于遥感影像进行精准分类
代码片段和文件信息
#include “stdio.h“
#include “math.h“
#include “stdlib.h“
#include “BmpFile.h“
//宏定义
#define num_GengDi 340
#define num_LinDi 474
#define num_LuoDi 1589
#define num_ShaDi 827
#define num_QiTa 295
#define cols 640
#define rows 400
#define num_band 6
//函数声明
void ReadTestSample(int** Land_GengDiint** Land_LinDiint** Land_LuoDiint** Land_ShaDiint** Land_QiTa);//读取训练样本
void Compute(int** Land_GengDiint** Land_LinDiint** Land_LuoDiint** Land_ShaDiint** Land_QiTa
float* ave_GengDifloat* ave_LinDifloat* ave_LuoDifloat* ave_ShaDifloat* ave_QiTa
float** cov_GengDifloat** cov_LinDifloat** cov_LuoDifloat** cov_ShaDifloat** cov_QiTa);//计算训练样本均值和协方差矩阵
void MatrixInverse(float** cov_infloat** cov_inv);//计算逆矩阵
//void ReadBmp(CBmpFile bmpfile1CBmpFile bmpfile2CBmpFile bmpfile3CBmpFile bmpfile4CBmpFile bmpfile5CBmpFile bmpfile6);
float* Mahalanobis(float* Xfloat* ave_GengDifloat* ave_LinDifloat* ave_LuoDifloat* ave_ShaDifloat* ave_QiTa
float** cov_invGengDifloat** cov_invLinDifloat** cov_invLuoDifloat** cov_invShaDifloat** cov_invQiTa);//计算马氏距离
void Mutiply(float** Afloat** Bint Mint Nfloat** C); //矩阵相乘运算
float Compare(float* Result); //输出马氏距离
//void freeIntMatrix(int** aint mint n);
//void freeFloatMatrix(float** aint mint n);
void main()
{
int** Land_LuoDi=(int**)malloc(sizeof(int*)*num_LuoDi); //训练样本矩阵定义
for (int i=0;i {
Land_LuoDi[i]=(int*)malloc(sizeof(int)*num_band);
}
int** Land_GengDi=(int**)malloc(sizeof(int*)*num_GengDi);
for (i=0;i {
Land_GengDi[i]=(int*)malloc(sizeof(int)*num_band);
}
int** Land_LinDi=(int**)malloc(sizeof(int*)*num_LinDi);
for (i=0;i {
Land_LinDi[i]=(int*)malloc(sizeof(int)*num_band);
}
int** Land_ShaDi=(int**)malloc(sizeof(int*)*num_ShaDi);
for (i=0;i {
Land_ShaDi[i]=(int*)malloc(sizeof(int)*num_band);
}
int** Land_QiTa=(int**)malloc(sizeof(int*)*num_QiTa);
for (i=0;i {
Land_QiTa[i]=(int*)malloc(sizeof(int)*num_band);
}
/**********************************************************************/
float* ave_GengDi=(float*)malloc(sizeof(float)*num_band); //训练样本均值矩阵定义
float* ave_LinDi=(float*)malloc(sizeof(float)*num_band);
float* ave_LuoDi=(float*)malloc(sizeof(float)*num_band);
float* ave_ShaDi=(float*)malloc(sizeof(float)*num_band);
float* ave_QiTa=(float*)malloc(sizeof(float)*num_band);
float** cov_GengDi=(float**)malloc(sizeof(float*)*num_band);//训练样本协方差矩阵定义
for (i=0;i {
cov_GengDi[i]=(float*)malloc(sizeof(float)*num_band);
}
float** cov_LinDi=(float**)malloc(sizeof(float*)*num_band);
for (i=0;i {
cov_LinDi[i]=(float*)malloc(sizeof(float)*num_band);
}
float** cov_LuoDi=(float**)malloc(sizeof(float*)*num_band);
for (i=0;i {
cov_LuoDi[i]=(float*)malloc(sizeof(float)*num_band);
}
float** cov_ShaDi=(float**)malloc(sizeof(float*)*
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 257080 2014-11-08 19:18 Mahalanobis\band1.bmp
文件 257080 2014-11-08 19:19 Mahalanobis\band2.bmp
文件 257080 2014-11-08 19:19 Mahalanobis\band3.bmp
文件 257080 2014-11-08 19:19 Mahalanobis\band4.bmp
文件 257080 2014-11-08 19:19 Mahalanobis\band5.bmp
文件 257080 2014-11-08 19:19 Mahalanobis\band7.bmp
文件 257080 2014-11-08 19:18 Mahalanobis\Mahalanobis\band1.bmp
文件 257080 2014-11-08 19:19 Mahalanobis\Mahalanobis\band2.bmp
文件 257080 2014-11-08 19:19 Mahalanobis\Mahalanobis\band3.bmp
文件 257080 2014-11-08 19:19 Mahalanobis\Mahalanobis\band4.bmp
文件 257080 2014-11-08 19:19 Mahalanobis\Mahalanobis\band5.bmp
文件 257080 2014-11-08 19:19 Mahalanobis\Mahalanobis\band7.bmp
文件 7111 2014-11-09 18:53 Mahalanobis\Mahalanobis\BmpFile.h
文件 769078 2014-12-01 22:10 Mahalanobis\Mahalanobis\Classify.bmp
文件 769078 2014-12-03 20:27 Mahalanobis\Mahalanobis\Classify2.bmp
文件 512800 2014-12-01 22:10 Mahalanobis\Mahalanobis\ClassifyMatrix.txt
文件 512800 2014-12-03 20:27 Mahalanobis\Mahalanobis\ClassifyMatrix2.txt
文件 4393 2014-11-08 22:35 Mahalanobis\Mahalanobis\Mahalanobis.dsp
文件 547 2014-11-06 21:55 Mahalanobis\Mahalanobis\Mahalanobis.dsw
文件 50176 2014-12-16 23:19 Mahalanobis\Mahalanobis\Mahalanobis.ncb
文件 48640 2014-12-16 23:19 Mahalanobis\Mahalanobis\Mahalanobis.opt
文件 256 2014-12-04 16:38 Mahalanobis\Mahalanobis\Mahalanobis.plg
文件 26290 2014-12-03 19:25 Mahalanobis\Mahalanobis\main.cpp
文件 4644 2014-11-08 21:54 Mahalanobis\Mahalanobis\其他.txt
文件 6783 2014-12-03 18:06 Mahalanobis\Mahalanobis\其他2.txt
文件 23566 2014-11-08 21:50 Mahalanobis\Mahalanobis\林地.txt
文件 11374 2014-12-03 18:04 Mahalanobis\Mahalanobis\林地2.txt
文件 18862 2014-11-08 21:55 Mahalanobis\Mahalanobis\沙地.txt
文件 19846 2014-12-03 18:07 Mahalanobis\Mahalanobis\沙地2.txt
文件 7750 2014-11-08 22:31 Mahalanobis\Mahalanobis\耕地.txt
............此处省略10个文件信息
- 上一篇:八皇后问题MFC实现
- 下一篇:vc6.0下mfc控件加载jpg格式图片
评论
共有 条评论