資源簡介
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個文件信息
評論
共有 條評論