资源简介
RBF径向基函数网格变形算法源程序,用于人脸等三维模型的网格变形

代码片段和文件信息
#include “StdAfx.h“
#include “all.hpp“
#include “RBF.hpp“
#include “math.h“
float Points_Distance(float x1 float y1 float z1 float x2 float y2 float z2)
{
return sqrt( (x1 - x2)*(x1 - x2) + (y1 - y2)*(y1 - y2) + (z1 - z2)*(z1 - z2) );
}
void print(gsl_matrix * pMatrix)
{
size_t rowNum = pMatrix->size1;
size_t colNum = pMatrix->size2;
for (size_t i = 0; i < rowNum; i ++)
{
for (size_t j = 0; j < colNum; j ++)
{
cout << gsl_matrix_get(pMatrix i j) << “ “;
}
cout << endl;
}
cout << endl;
}
void printVertex(float *pointset int Num)
{
for(int ii = 0;ii < Num; ii++)
{
for(int jj = 0;jj < 3; jj++)
{
cout << *(pointset + ii*3 + jj) << “ “;
}
cout << endl;
}
cout << endl;
}
void RBF(float *pointset int Num float *soureFeaturePoints float *targetFeaturePoints int featureNum)
{
freopen(“c:\\dataa.txt“ “w+“ stdout);
gsl_matrix * sourceTZsXYZ = gsl_matrix_alloc (featureNum 3);
gsl_matrix * targetTZsXYZ = gsl_matrix_alloc (featureNum 3);
int i j;
for(i = 0;i < featureNum; i++)
{
for(j = 0;j < 3; j++)
{
gsl_matrix_set(sourceTZsXYZ i j *(soureFeaturePoints + i*3 + j));
}
}
for(i = 0;i < featureNum; i++)
{
for(j = 0;j < 3; j++)
{
gsl_matrix_set(targetTZsXYZ i j *(targetFeaturePoints + i*3 + j));
}
}
// print(sourceTZsXYZ);
// print(targetTZsXYZ);
////// 赋值给b数组/////////////////////////////////////////////////////////
gsl_matrix * b = gsl_matrix_calloc(featureNum + 4 1);
for(i = 0;i < featureNum; i++)
{
gsl_matrix_set(b i 0 gsl_matrix_get(targetTZsXYZ i 0));
}
////////////////////////////////////////////////////////////////////////////
//////////////////// 初始化矩阵A //////////////////////////////////
gsl_matrix * A = gsl_matrix_calloc (featureNum+4 featureNum+4);
for(i = 0;i < featureNum; i++)
{
for(j = 0;j < featureNum; j++)
{
gsl_matrix_set(A i j Points_Distance(
*(soureFeaturePoints + i*3) *(soureFeaturePoints + i*3 + 1) *(soureFeaturePoints + i*3 + 2)
*(soureFeaturePoints + j*3) *(soureFeaturePoints + j*3 + 1) *(soureFeaturePoints + j*3 + 2)));
}
}
for(i = 0;i < featureNum; i++) // 右上小块
{
gsl_matrix_set(A i featureNum 1);
gsl_matrix_set(A i featureNum+1 gsl_matrix_get(sourceTZsXYZ i 0));
gsl_matrix_set(A i featureNum+2 gsl_matrix_get(sourceTZsXYZ i 1));
gsl_matrix_set(A i featureNum+3 gsl_matrix_get(sourceTZsXYZ i 2));
}
for(i = 0;i < featureNum; i++) // 左下小块
{
gsl_matrix_set(A featureNum i 1);
gsl_matrix_set(A featureNum+1 i gsl_matrix_get(sourceTZsXYZ i 0));
gsl_matrix_set(A featureNum+2 i gsl_matrix_get(sourceTZsXYZ i 1));
gsl_matrix_set(A featureNum+3 i gsl_matrix_get(sourceTZsXYZ i 2));
}
print(A);
//////// 解方程 ////////////////////////////////////////////////////////////////
int s; float sum;
/////////////////////// 解X
gsl_matrix * A_c = gsl_matri
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 6726 2008-11-02 17:15 RBF算法的c++实现版本\RBF.cpp
文件 154 2008-10-28 10:21 RBF算法的c++实现版本\RBF.hpp
目录 0 2011-06-08 16:01 RBF算法的c++实现版本
----------- --------- ---------- ----- ----
6880 3
- 上一篇:汇编写的时钟程序,很好用,值得研究
- 下一篇:背景差分人体检测
相关资源
- 基于RBF神经网络在线辨识的永磁同步
- 基于粒子群算法优化RBF神经网络的异
- 网格变形.pdf
- BP、RBF神经网络分类
- 神经网络PPT,MLPRBFSVM
- 基于RBF网络辨识的模型参考自适应控
- DNA序列的分类模型
- 径向基函数插值方法分析
- 粒子群优化算法的RBF模型,做预测
- 遗传算法优化RBF神经网络源程序
- RBF神经网络对iris分类
- RBF神经网络做回归预测
- 基于 PCA - RBF 神经网络的混凝土坝
- rbf神经网络在变压器故障诊断中的应
- RBF神经网络 实现非线性函数回归
- 粒子群优化RBF神经网络的光伏阵列故
- Introduction of RBF
- RBF神经网络在径流预报中的应用
- 七个RBF神经网络的源程序
- RBF神经网络用于分类与回归
- BP网络与RBF径向基网络对比
- rbf神经网络图像识别
- 风电场风速预测的RBF神经网络模型
- 基于RBF神经网络的航空发动机故障诊
- 刘金琨著-RBF神经网络自适应控制-全书
- PSO_GA_RBF预测系统
- PSO-GA-RBF
- GA优化后的RBF神经网络
- 单摆RBF神经网络建模程序
- 遗传算法优化RBF神经网络
评论
共有 条评论