使用OpenCV编写的LDA程序----C++ LDA代码

改写自OpenCV中的lda.cpp程序,通过改写的程序可以返回自己所需的信息(LDA算法过程中产生的我们感兴趣的中间值),实现算法的独立编译,也可以通过阅读程序,加深对LDA算法的理解。

// main.cpp : 定义控制台应用程序的入口点。
//

#include "stdafx.h"
#include <cxcore.hpp>
#include <vector>
#include <iostream>
#include "lda.h"
using namespace std;
using namespace cv;

int main(void)
{
 double data[6][2]={{0,1},{0,2},{1,4},{8,0},{8,2},{9,4}};
 Mat dmat=Mat(6,2,CV_64FC1,data);
 int labels[6]={0, 0, 0, 1, 1, 1};
 Mat lmat=Mat(1,6,CV_32SC1,labels);

 cout<<"--------------------------------"<<endl;

 MyLDA(dmat, lmat);

 system("pause");
 return 0;
}

使用OpenCV编写的LDA程序----C++ LDA代码

//lda.h

#ifndef  _MY_LDA_H
#define _MY_LDA_H

#include <cxcore.hpp>
#include <vector>
using namespace std;
using namespace cv;

/*********************
 _src:
 输入的采样数据,Mat类型,每行是一个样本数据
 _lbls:
 输入的类别标签,可以是矩阵或者向量

 还没有返回值,需要的朋友可以自己做进一步改写
/********************/
extern void MyLDA(InputArrayOfArrays _src, InputArray _lbls);

#endif

相关推荐