没有合适的资源?快使用搜索试试~ 我知道了~
数值图像处理之刚性变换匹配源代码(opencv)
3星 · 超过75%的资源 需积分: 47 40 下载量 195 浏览量
2011-08-04
20:05:20
上传
评论 4
收藏 8KB TXT 举报
温馨提示
试读
12页
数值图像处理之刚性变换匹配源代码(opencv),很经典的一个算法。仿射匹配只需稍加改进即可
资源推荐
资源详情
资源评论
#include<stdio.h>
#include <cv.h>
#include <highgui.h>
double Initiasigma2(CvMat* E,CvMat* F);//初始化sigma的值
CvMat* Compute_P(CvMat* E,CvMat* F,double sigma2);
double Compute_Np(CvMat* A);//计算Np的值(矩阵所有原始求和)
CvMat* Mat_mul(CvMat* A,CvMat* B);//矩阵乘法运算
CvMat* Mat_transpose(CvMat* A);//矩阵转置
double Mat_trace(CvMat* A);//矩阵的迹
CvMat* CreateMat_col(CvMat* A);//创建列矩阵(元素均为1)
CvMat* Mat_number_Mul(CvMat* A,double Num);//数与矩阵相乘
CvMat* Mat_sub(CvMat* A,CvMat* B);//矩阵的减法运算
CvMat* Mat_Invert(CvMat* A);//矩阵求逆运算
CvMat* Mat_Create_dia(CvMat* A);//创建对角矩阵
CvMat* Mat_Add(CvMat* A,CvMat* B);//矩阵的加法运算
IplImage* Y_CreatePointImage(CvMat* A);
CvMat* CreateMat_col_dia(CvMat* A);
void main()
{
CvMat* X1;
CvMat* Y1;
CvMat* B1;
CvMat* tt;
CvMat* t_y;
CvMat* Y_EM;
CvMat* X_Origin;
CvMat* Y_Origin;
#include <cv.h>
#include <highgui.h>
double Initiasigma2(CvMat* E,CvMat* F);//初始化sigma的值
CvMat* Compute_P(CvMat* E,CvMat* F,double sigma2);
double Compute_Np(CvMat* A);//计算Np的值(矩阵所有原始求和)
CvMat* Mat_mul(CvMat* A,CvMat* B);//矩阵乘法运算
CvMat* Mat_transpose(CvMat* A);//矩阵转置
double Mat_trace(CvMat* A);//矩阵的迹
CvMat* CreateMat_col(CvMat* A);//创建列矩阵(元素均为1)
CvMat* Mat_number_Mul(CvMat* A,double Num);//数与矩阵相乘
CvMat* Mat_sub(CvMat* A,CvMat* B);//矩阵的减法运算
CvMat* Mat_Invert(CvMat* A);//矩阵求逆运算
CvMat* Mat_Create_dia(CvMat* A);//创建对角矩阵
CvMat* Mat_Add(CvMat* A,CvMat* B);//矩阵的加法运算
IplImage* Y_CreatePointImage(CvMat* A);
CvMat* CreateMat_col_dia(CvMat* A);
void main()
{
CvMat* X1;
CvMat* Y1;
CvMat* B1;
CvMat* tt;
CvMat* t_y;
CvMat* Y_EM;
CvMat* X_Origin;
CvMat* Y_Origin;
double vals[]={1,0.5,0.3,1};
double t_val[]={10,10};
double ty_vals[]={150,150};
B1=cvCreateMat(2,2,CV_64F);
cvInitMatHeader(B1,2,2,CV_64F,vals);
tt=cvCreateMat(2,1,CV_64F);
cvInitMatHeader(tt,2,1,CV_64F,t_val);
t_y=cvCreateMat(2,1,CV_64F);
cvInitMatHeader(t_y,2,1,CV_64F,ty_vals);
int i=0;
int Iteration=30;
//加载X点集
X1=(CvMat*)cvLoad("2D_fish_X.xml");
//生成Y点集
Y1=cvCloneMat(X1);
Y1=Mat_Add(Mat_mul(Y1,B1),Mat_mul(CreateMat_col(Y1),Mat_transpose(tt)));
//显示X,Y点集的图像
X_Origin=Mat_Add(Mat_number_Mul(X1,100),Mat_mul(CreateMat_col(X1),Mat_transpose(t_y)));
Y_Origin=Mat_Add(Mat_number_Mul(Y1,100),Mat_mul(CreateMat_col(Y1),Mat_transpose(t_y)));
IplImage* src=Y_CreatePointImage(X_Origin);
cvNamedWindow("Original_Img");
cvShowImage("Original_Img",src);
double t_val[]={10,10};
double ty_vals[]={150,150};
B1=cvCreateMat(2,2,CV_64F);
cvInitMatHeader(B1,2,2,CV_64F,vals);
tt=cvCreateMat(2,1,CV_64F);
cvInitMatHeader(tt,2,1,CV_64F,t_val);
t_y=cvCreateMat(2,1,CV_64F);
cvInitMatHeader(t_y,2,1,CV_64F,ty_vals);
int i=0;
int Iteration=30;
//加载X点集
X1=(CvMat*)cvLoad("2D_fish_X.xml");
//生成Y点集
Y1=cvCloneMat(X1);
Y1=Mat_Add(Mat_mul(Y1,B1),Mat_mul(CreateMat_col(Y1),Mat_transpose(tt)));
//显示X,Y点集的图像
X_Origin=Mat_Add(Mat_number_Mul(X1,100),Mat_mul(CreateMat_col(X1),Mat_transpose(t_y)));
Y_Origin=Mat_Add(Mat_number_Mul(Y1,100),Mat_mul(CreateMat_col(Y1),Mat_transpose(t_y)));
IplImage* src=Y_CreatePointImage(X_Origin);
cvNamedWindow("Original_Img");
cvShowImage("Original_Img",src);
剩余11页未读,继续阅读
资源评论
- 湛蓝冰羽2013-12-21直接运行不了,但是改了一下还是能用。
- weixin_434181092019-06-28能参考121313
- 那小子、真烦2018-07-04没有用就是一个txt
liuzuochu
- 粉丝: 0
- 资源: 3
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 2023-04-06-项目笔记 - 第一百十五阶段 - 4.4.2.113全局变量的作用域-113 -2024.04.26
- 2023-04-06-项目笔记 - 第一百十五阶段 - 4.4.2.113全局变量的作用域-113 -2024.04.26
- htmlzwbjq_downyi.com.zip
- 无头单向非循环链表的实现(Test.c)
- 无头单向非循环链表的实现(SList.c)
- 浏览器重定向插件更新文件
- SSA-BP麻雀算法优化BP神经网络多特征分类预测(Matlab实现完整源码和数据)
- 粒子群算法优化BP神经网络PSO-BP的MATLAB代码(数值预测)
- 基于Springboot的一起看书平台.zip
- 无头单向非循环链表的实现(SList.h)
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功