资源简介
opencv实现的PCASift算法,步骤明确。在你电脑上运行可能会提示丢失cvaux.lib文件,在我的资源中提供了该文件,下载copy到你的opencv相应的库文件夹下。
代码片段和文件信息
#include “sift_includes.h“
// rotate covariance matrix
void rot_cov(CvMat *R CvMat *cov)
{
CvMat *W *U *V;
W = cvCreateMat(3 3 CV_32FC1);
U = cvCreateMat(3 3 CV_32FC1);
V = cvCreateMat(3 3 CV_32FC1);
cvSVD(cov W U V);
// u = r * u;
cvMatMul(R U U);
// v = r * v;
cvMatMul(R V V);
// v = v‘
cvTranspose(V V);
// v = w * v
cvMatMul(W V V);
// cov = u * v
cvMatMul(U V cov);
cvReleaseMat(&W);
cvReleaseMat(&U);
cvReleaseMat(&V);
}
// print temporal matches in a MATLAB friendly fashion
void show_temporal_matches(vector l)
{
unsigned int i;
for (i=0; i {
printf(“%f %f %f %f %f %f\n“
l[i].old_feature.x
l[i].old_feature.y
l[i].old_feature.z
l[i].new_feature.x
l[i].new_feature.y
l[i].new_feature.z);
}
}
// write list to file
void write_list_to_file(vector l char *filename)
{
FILE *fp = fopen(filename “w“);
unsigned int i;
for (i=0; i fprintf(fp “%f\t%f\t%f\n“ l[i].x l[i].y l[i].z);
fclose(fp);
}
// return true if matrix contains NaN values
bool isMatrixNan(CvMat *m)
{
bool ret = false;
int r c;
for (r=0; rrows; r++)
for (c=0; ccols; c++)
{
if (cvIsNaN(cvmGet(m r c)) == 1)
{
ret = true;
break;
}
}
return ret;
}
// pool covariances
void covariance_pool(vector in CvMat *out)
{
int len = (int)in.size();
if (len == 0)
{
printf(“cv_type_converter.c: WARNING covariance_pool() got a list with 0 entries\n“);
return;
}
int i;
cvSetZero(out);
for (i=0; i cvAdd(in[i] out out);
mul_inplace(out 1.0/(float)len);
}
// perform inplance multiplication of matrix dst with specified multiplier
void mul_inplace(CvMat *dst float multiplier)
{
int r c;
float tmp;
for (r=0; rrows; r++)
for (c=0; ccols; c++)
{
tmp = cvmGet(dst r c) * multiplier;
cvmSet(dst r c tmp);
}
}
void show_matlab_matrix_as_row(CvMat *m)
{
int r c;
for (r=0; rrows; r++)
for (c=0; ccols; c++)
printf(“%f\t“ cvmGet(m r c));
printf(“\n“);
}
void show_matlab_vector_as_row(CvMat *m)
{
int r;
for (r=0; rrows; r++)
printf(“%f\t“ cvmGet(m r 0));
printf(“\n“);
}
// populate float array using matrix
void populate_array_9(CvMat *src float *dst)
{
int r c i=0;
for (r=0; r<3; r++)
for (c=0; c<3; c++)
{
dst[i] = cvmGet(src r c);
i++;
}
}
// populate matrix using float array
void populate_matrix_3x3(float *src CvMat *dst)
{
int r c i=0;
for (r=0; r<3; r++)
for (c=0; c<3; c++)
{
cvmSet(dst r c src[i]);
i++;
}
}
// show matrix on screen
void show(CvMat
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 877 2006-02-09 17:01 PCASift\Backup\PCA Shift.sln
..A..H. 9728 2006-03-20 09:37 PCASift\Backup\PCA Shift.v11.suo
文件 884 2014-04-11 16:59 PCASift\Backup1\PCA Shift.sln
..A..H. 9728 2006-03-20 09:37 PCASift\Backup1\PCA Shift.v11.suo
文件 9692 2005-05-26 14:11 PCASift\cv_type_converter.c
文件 1625 2005-05-26 14:11 PCASift\cv_type_converter.h
文件 2052 2014-04-14 15:28 PCASift\Debug\BscMake.command.1.tlog
文件 1590 2014-04-14 15:28 PCASift\Debug\bscmake.read.1.tlog
文件 1438 2014-04-14 15:28 PCASift\Debug\bscmake.write.1.tlog
文件 9002 2014-04-14 15:28 PCASift\Debug\cl.command.1.tlog
文件 253820 2014-04-14 15:28 PCASift\Debug\CL.read.1.tlog
文件 6530 2014-04-14 15:28 PCASift\Debug\CL.write.1.tlog
文件 294027 2014-04-11 17:03 PCASift\Debug\edgeResponseFilter.obj
文件 0 2014-04-11 17:03 PCASift\Debug\edgeResponseFilter.sbr
文件 211949 2014-04-11 17:03 PCASift\Debug\gaussianWindow.obj
文件 0 2014-04-11 17:02 PCASift\Debug\gaussianWindow.sbr
文件 6217 2014-04-11 17:03 PCASift\Debug\km_cluster.obj
文件 0 2014-04-11 17:02 PCASift\Debug\km_cluster.sbr
文件 2 2014-04-14 15:28 PCASift\Debug\li
文件 2 2014-04-14 15:28 PCASift\Debug\li
文件 2 2014-04-14 15:28 PCASift\Debug\li
文件 2 2014-04-14 15:28 PCASift\Debug\li
文件 4392 2014-04-14 15:28 PCASift\Debug\li
文件 9698 2014-04-14 15:28 PCASift\Debug\li
文件 1630 2014-04-14 15:28 PCASift\Debug\li
文件 303623 2014-04-11 17:03 PCASift\Debug\localizer.obj
文件 0 2014-04-11 17:02 PCASift\Debug\localizer.sbr
文件 243085 2014-04-14 15:28 PCASift\Debug\main.obj
文件 0 2014-04-14 15:28 PCASift\Debug\main.sbr
文件 276327 2014-04-11 17:03 PCASift\Debug\matcher.obj
............此处省略100个文件信息
相关资源
- opencv中的cxcore200.dll
- Opencv3编程案例详解源码
- 基于图像的火柴和钢筋数量检测
- 基于opencv的交通标志识别
- opencv自带SVM分类器使用程序
- OpenCV使用随机森林实现对图像分类
- opencv行人检测,新鲜出炉
- OpenCV之人脸,眼睛,鼻子,嘴巴的识
- OpenCv相似度比较
- 手写识别的opencv代码
- 棋盘格生成小工具
-
opencv haar检测训练成功xm
l - opencv实现的手势识别,石头剪刀布的
- 基于opencv的手势识别程序,亲测可用
- 人脸识别系统设计-毕业设计
- 相机标定完整工程vs
- 基于opencv的绊线检测代码
- OPENCV人眼检测
-
haarcascades人脸特征分类器xm
l文件 - opencv实现只有xy方向平移的图像拼接算
- Qt+Opencv-PCA人脸识别+视频
- 答题卡识别小程序
- Opencv2.1 的dll和lib文件 win系统的
- HDR_Code_Image.rar for opencv
- opencv毕业设计
- opencv3.4.1+opencv_contrib经vs2015编译后生成
- opencv交叉编译过程中boostdesc_bgm.i等一
- opencv网络摄像头功能和文件传输功能
- opencv410编译好的32位库
- OpenCV文字区域定位
评论
共有 条评论