这个是我做项目时用到的,平时很多网上资源没有用,都是横向拼接,这个是我改的,里面有很多算法,用了sift surf orb等,自己根据情况来选,当时搞这个,花了不少时间,含蒙层mask选择区域来找兴趣点
代码片段和文件信息
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 752 2018-08-25 08:57 ConsoleAppOpencv(3.4.0SURF纵向) - mask.gitconfig
文件 73 2018-08-24 16:26 ConsoleAppOpencv(3.4.0SURF纵向) - mask.gitdescription
文件 23 2018-08-24 16:26 ConsoleAppOpencv(3.4.0SURF纵向) - mask.gitHEAD
文件 177 2018-08-24 16:26 ConsoleAppOpencv(3.4.0SURF纵向) - mask.githooksREADME.sample
文件 976 2018-08-24 16:26 ConsoleAppOpencv(3.4.0SURF纵向) - mask.gitindex
文件 113 2018-08-24 16:26 ConsoleAppOpencv(3.4.0SURF纵向) - mask.gitinfoexclude
文件 350 2018-08-24 16:26 ConsoleAppOpencv(3.4.0SURF纵向) - mask.gitlogsHEAD
文件 350 2018-08-24 16:26 ConsoleAppOpencv(3.4.0SURF纵向) - mask.gitlogs
efsheadsmaster
文件 150 2018-08-25 08:56 ConsoleAppOpencv(3.4.0SURF纵向) - mask.gitms-persist.xml
文件 164 2018-08-24 16:26 ConsoleAppOpencv(3.4.0SURF纵向) - mask.gitobjects 0f1b970f0f7b40013f343cc3d042f29e531b825
文件 198 2018-08-24 16:26 ConsoleAppOpencv(3.4.0SURF纵向) - mask.gitobjects 14ab97db7bad25e5ab0b49fec925e0ecde34191
文件 89 2018-08-24 16:26 ConsoleAppOpencv(3.4.0SURF纵向) - mask.gitobjects d76fe4328089e5b63a9c4190badacfc35ef2624
文件 1863 2018-08-24 16:26 ConsoleAppOpencv(3.4.0SURF纵向) - mask.gitobjects1c9a181a44b4f9a105f0dc71a40ad0284ab6a7c4
文件 751 2018-08-24 16:26 ConsoleAppOpencv(3.4.0SURF纵向) - mask.gitobjects1ff0c423042b46cb1d617b81efb715defbe8054d
文件 205 2018-08-24 16:26 ConsoleAppOpencv(3.4.0SURF纵向) - mask.gitobjects416cebf89fd0df8216693b65bba536a1436754e7
文件 449 2018-08-24 16:26 ConsoleAppOpencv(3.4.0SURF纵向) - mask.gitobjects4386ddf9881eb3b90fe5bce2d998f9f88e3259d8
文件 205 2018-08-24 16:26 ConsoleAppOpencv(3.4.0SURF纵向) - mask.gitobjects6f836b3f2ad61feb8ca4504056dd6f77dd4c082
文件 392 2018-08-24 16:26 ConsoleAppOpencv(3.4.0SURF纵向) - mask.gitobjects7d10113c37d240cf18aa54ab48b01e0edc46e050
文件 1472 2018-08-24 16:26 ConsoleAppOpencv(3.4.0SURF纵向) - mask.gitobjectsa4 2ab0289d2dd626bff505d6ede7b244156c4a4
文件 203 2018-08-24 16:26 ConsoleAppOpencv(3.4.0SURF纵向) - mask.gitobjectsaa4bbc621f3abfbc1726da79a84e54dbd5309f8
文件 256 2018-08-24 16:26 ConsoleAppOpencv(3.4.0SURF纵向) - mask.gitobjectsd0a097c53e0afc44773598da415389f6d2e678f9
文件 571 2018-08-24 16:26 ConsoleAppOpencv(3.4.0SURF纵向) - mask.gitobjectsd4 722586bbc6a8c89758bccbcacb5844dadb98c
文件 169 2018-08-24 16:26 ConsoleAppOpencv(3.4.0SURF纵向) - mask.gitobjectse63873965f9636901c08f229ceeefed8a8f27107
文件 678 2018-08-24 16:26 ConsoleAppOpencv(3.4.0SURF纵向) - mask.gitobjectsf340a5272d9cb4b971d960d4a09a90b753e5df3a
文件 41 2018-08-24 16:26 ConsoleAppOpencv(3.4.0SURF纵向) - mask.git
efsheadsmaster
文件 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.vsConsoleAppOpencvv14.suo
文件 10878 2018-10-30 15:32 ConsoleAppOpencv(3.4.0SURF纵向) - maskConsoleAppOpencvConsoleAppOpencv.cpp
文件 9009 2018-10-15 09:50 ConsoleAppOpencv(3.4.0SURF纵向) - maskConsoleAppOpencvConsoleAppOpencv.vcxproj
............此处省略71个文件信息
#include “stdafx.h“
#include
#include
#include
#include
#include“opencv2opencv.hpp“
#include“opencv2corecore.hpp“
#include“opencv2xfeatures2d.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.gitconfig
文件 73 2018-08-24 16:26 ConsoleAppOpencv(3.4.0SURF纵向) - mask.gitdesc
文件 23 2018-08-24 16:26 ConsoleAppOpencv(3.4.0SURF纵向) - mask.gitHEAD
文件 177 2018-08-24 16:26 ConsoleAppOpencv(3.4.0SURF纵向) - mask.githooksREADME.sample
文件 976 2018-08-24 16:26 ConsoleAppOpencv(3.4.0SURF纵向) - mask.gitindex
文件 113 2018-08-24 16:26 ConsoleAppOpencv(3.4.0SURF纵向) - mask.gitinfoexclude
文件 350 2018-08-24 16:26 ConsoleAppOpencv(3.4.0SURF纵向) - mask.gitlogsHEAD
文件 350 2018-08-24 16:26 ConsoleAppOpencv(3.4.0SURF纵向) - mask.gitlogs
efsheadsmaster
文件 150 2018-08-25 08:56 ConsoleAppOpencv(3.4.0SURF纵向) - mask.gitms-persist.xm
文件 164 2018-08-24 16:26 ConsoleAppOpencv(3.4.0SURF纵向) - mask.gitob
文件 198 2018-08-24 16:26 ConsoleAppOpencv(3.4.0SURF纵向) - mask.gitob
文件 89 2018-08-24 16:26 ConsoleAppOpencv(3.4.0SURF纵向) - mask.gitob
文件 1863 2018-08-24 16:26 ConsoleAppOpencv(3.4.0SURF纵向) - mask.gitob
文件 751 2018-08-24 16:26 ConsoleAppOpencv(3.4.0SURF纵向) - mask.gitob
文件 205 2018-08-24 16:26 ConsoleAppOpencv(3.4.0SURF纵向) - mask.gitob
文件 449 2018-08-24 16:26 ConsoleAppOpencv(3.4.0SURF纵向) - mask.gitob
文件 205 2018-08-24 16:26 ConsoleAppOpencv(3.4.0SURF纵向) - mask.gitob
文件 392 2018-08-24 16:26 ConsoleAppOpencv(3.4.0SURF纵向) - mask.gitob
文件 1472 2018-08-24 16:26 ConsoleAppOpencv(3.4.0SURF纵向) - mask.gitob
文件 203 2018-08-24 16:26 ConsoleAppOpencv(3.4.0SURF纵向) - mask.gitob
文件 256 2018-08-24 16:26 ConsoleAppOpencv(3.4.0SURF纵向) - mask.gitob
文件 571 2018-08-24 16:26 ConsoleAppOpencv(3.4.0SURF纵向) - mask.gitob
文件 169 2018-08-24 16:26 ConsoleAppOpencv(3.4.0SURF纵向) - mask.gitob
文件 678 2018-08-24 16:26 ConsoleAppOpencv(3.4.0SURF纵向) - mask.gitob
文件 41 2018-08-24 16:26 ConsoleAppOpencv(3.4.0SURF纵向) - mask.git
efsheadsmaster
文件 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.vsConsoleAppOpencvv14.suo
文件 10878 2018-10-30 15:32 ConsoleAppOpencv(3.4.0SURF纵向) - maskConsoleAppOpencvConsoleAppOpencv.cpp
文件 9009 2018-10-15 09:50 ConsoleAppOpencv(3.4.0SURF纵向) - maskConsoleAppOpencvConsoleAppOpencv.vcxproj
............此处省略71个文件信息
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件举报,一经查实,本站将立刻删除。
评论列表(条)