资源简介

这个是我做项目时用到的,平时很多网上资源没有用,都是横向拼接,这个是我改的,里面有很多算法,用了sift surf orb等,自己根据情况来选,当时搞这个,花了不少时间,含蒙层mask选择区域来找兴趣点

资源截图

代码片段和文件信息

#include “stdafx.h“
#include 
#include   
#include  
#include
#include“opencv2\opencv.hpp“
#include“opencv2\core\core.hpp“
#include“opencv2\xfeatures2d.hpp“
#include “opencv2/xfeatures2d/nonfree.hpp“    
#include “opencv2/highgui/highgui.hpp“

#define CV_RANSAC 8

using namespace cv;
using namespace std;
#define pi 3.1415926

void OptimizeSeam(Mat& img1 Mat& trans Mat& dst);

typedef struct
{
Point2f left_top;
Point2f left_bottom;
Point2f right_top;
Point2f right_bottom;
}four_corners_t;

four_corners_t corners;

void CalcCorners(const Mat& H const Mat& src)
{
double v2[] = { 0 0 1 };//左上角
double v1[3];//变换后的坐标值
Mat V2 = Mat(3 1 CV_64FC1 v2);  //列向量
Mat V1 = Mat(3 1 CV_64FC1 v1);  //列向量

V1 = H * V2;
//左上角(001)
cout << “V2: “ << V2 << endl;
cout << “V1: “ << V1 << endl;
corners.left_top.x = v1[0] / v1[2];
corners.left_top.y = v1[1] / v1[2];

//左下角(0src.rows1)
v2[0] = 0;
v2[1] = src.rows;
v2[2] = 1;
V2 = Mat(3 1 CV_64FC1 v2);  //列向量
V1 = Mat(3 1 CV_64FC1 v1);  //列向量
V1 = H * V2;
corners.left_bottom.x = v1[0] / v1[2];
corners.left_bottom.y = v1[1] / v1[2];

//右上角(src.cols01)
v2[0] = src.cols;
v2[1] = 0;
v2[2] = 1;
V2 = Mat(3 1 CV_64FC1 v2);  //列向量
V1 = Mat(3 1 CV_64FC1 v1);  //列向量
V1 = H * V2;
corners.right_top.x = v1[0] / v1[2];
corners.right_top.y = v1[1] / v1[2];

//右下角(src.colssrc.rows1)
v2[0] = src.cols;
v2[1] = src.rows;
v2[2] = 1;
V2 = Mat(3 1 CV_64FC1 v2);  //列向量
V1 = Mat(3 1 CV_64FC1 v1);  //列向量
V1 = H * V2;
corners.right_bottom.x = v1[0] / v1[2];
corners.right_bottom.y = v1[1] / v1[2];
}

//计算夹角
double dotProduct(const vector& v1 const vector& v2)
{
assert(v1.size() == v2.size());
double ret = 0.0;
for (vector::size_type i = 0; i != v1.size(); ++i)
{
ret += v1[i] * v2[i];
}
return ret;
}
//向量模
double module(const vector& v)
{
double ret = 0.0;
for (vector::size_type i = 0; i != v.size(); ++i)
{
ret += v[i] * v[i];
}
return sqrt(ret);
}

double get_point_angle(Point2f pointO Point2f pointA)
{
double angle = 0;
Point2f point;
double temp;
point = Point2f((pointA.x - pointO.x) (pointA.y - pointO.y));
if ((0 == point.x) && (0 == point.y))
{
return 0;
}
if (0 == point.x)
{
angle = 90;
return angle;
}
if (0 == point.y)
{
angle = 0;
return angle;
}
temp = fabsf(float(point.y) / float(point.x));
temp = atan(temp);
temp = temp * 180 / CV_PI;
if ((0 {
angle = 360 - temp;
return angle;
}
if ((0>point.x) && (0 {
angle = 360 - (180 - temp);
return angle;
}
if ((0point.y))
{
angle = temp;
return angle;
}
if ((0>point.x) && (0>point.y))
{
angle = 180 - temp;
return angle;
}
printf(“sceneDrawing :: getAngle error!“);
return -1;
}

//计算余弦值
double 

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件        752  2018-08-25 08:57  ConsoleAppOpencv(3.4.0SURF纵向) - mask\.git\config

     文件         73  2018-08-24 16:26  ConsoleAppOpencv(3.4.0SURF纵向) - mask\.git\description

     文件         23  2018-08-24 16:26  ConsoleAppOpencv(3.4.0SURF纵向) - mask\.git\HEAD

     文件        177  2018-08-24 16:26  ConsoleAppOpencv(3.4.0SURF纵向) - mask\.git\hooks\README.sample

     文件        976  2018-08-24 16:26  ConsoleAppOpencv(3.4.0SURF纵向) - mask\.git\index

     文件        113  2018-08-24 16:26  ConsoleAppOpencv(3.4.0SURF纵向) - mask\.git\info\exclude

     文件        350  2018-08-24 16:26  ConsoleAppOpencv(3.4.0SURF纵向) - mask\.git\logs\HEAD

     文件        350  2018-08-24 16:26  ConsoleAppOpencv(3.4.0SURF纵向) - mask\.git\logs\refs\heads\master

     文件        150  2018-08-25 08:56  ConsoleAppOpencv(3.4.0SURF纵向) - mask\.git\ms-persist.xml

     文件        164  2018-08-24 16:26  ConsoleAppOpencv(3.4.0SURF纵向) - mask\.git\objects\00\f1b970f0f7b40013f343cc3d042f29e531b825

     文件        198  2018-08-24 16:26  ConsoleAppOpencv(3.4.0SURF纵向) - mask\.git\objects\01\4ab97db7bad25e5ab0b49fec925e0ecde34191

     文件         89  2018-08-24 16:26  ConsoleAppOpencv(3.4.0SURF纵向) - mask\.git\objects\0d\76fe4328089e5b63a9c4190badacfc35ef2624

     文件       1863  2018-08-24 16:26  ConsoleAppOpencv(3.4.0SURF纵向) - mask\.git\objects\1c\9a181a44b4f9a105f0dc71a40ad0284ab6a7c4

     文件        751  2018-08-24 16:26  ConsoleAppOpencv(3.4.0SURF纵向) - mask\.git\objects\1f\f0c423042b46cb1d617b81efb715defbe8054d

     文件        205  2018-08-24 16:26  ConsoleAppOpencv(3.4.0SURF纵向) - mask\.git\objects\41\6cebf89fd0df8216693b65bba536a1436754e7

     文件        449  2018-08-24 16:26  ConsoleAppOpencv(3.4.0SURF纵向) - mask\.git\objects\43\86ddf9881eb3b90fe5bce2d998f9f88e3259d8

     文件        205  2018-08-24 16:26  ConsoleAppOpencv(3.4.0SURF纵向) - mask\.git\objects\6f\b836b3f2ad61feb8ca4504056dd6f77dd4c082

     文件        392  2018-08-24 16:26  ConsoleAppOpencv(3.4.0SURF纵向) - mask\.git\objects\7d\10113c37d240cf18aa54ab48b01e0edc46e050

     文件       1472  2018-08-24 16:26  ConsoleAppOpencv(3.4.0SURF纵向) - mask\.git\objects\a4\02ab0289d2dd626bff505d6ede7b244156c4a4

     文件        203  2018-08-24 16:26  ConsoleAppOpencv(3.4.0SURF纵向) - mask\.git\objects\ba\a4bbc621f3abfbc1726da79a84e54dbd5309f8

     文件        256  2018-08-24 16:26  ConsoleAppOpencv(3.4.0SURF纵向) - mask\.git\objects\d0\a097c53e0afc44773598da415389f6d2e678f9

     文件        571  2018-08-24 16:26  ConsoleAppOpencv(3.4.0SURF纵向) - mask\.git\objects\d4\0722586bbc6a8c89758bccbcacb5844dadb98c

     文件        169  2018-08-24 16:26  ConsoleAppOpencv(3.4.0SURF纵向) - mask\.git\objects\e6\3873965f9636901c08f229ceeefed8a8f27107

     文件        678  2018-08-24 16:26  ConsoleAppOpencv(3.4.0SURF纵向) - mask\.git\objects\f3\40a5272d9cb4b971d960d4a09a90b753e5df3a

     文件         41  2018-08-24 16:26  ConsoleAppOpencv(3.4.0SURF纵向) - mask\.git\refs\heads\master

     文件       2581  2018-08-24 16:26  ConsoleAppOpencv(3.4.0SURF纵向) - mask\.gitattributes

     文件       3997  2018-08-24 16:26  ConsoleAppOpencv(3.4.0SURF纵向) - mask\.gitignore

    ..A..H.     67584  2018-10-30 15:33  ConsoleAppOpencv(3.4.0SURF纵向) - mask\.vs\ConsoleAppOpencv\v14\.suo

     文件      10878  2018-10-30 15:32  ConsoleAppOpencv(3.4.0SURF纵向) - mask\ConsoleAppOpencv\ConsoleAppOpencv.cpp

     文件       9009  2018-10-15 09:50  ConsoleAppOpencv(3.4.0SURF纵向) - mask\ConsoleAppOpencv\ConsoleAppOpencv.vcxproj

............此处省略71个文件信息

评论

共有 条评论