资源简介
基于相位相关算法的全景图像拼接,效率高,亲测成功,有样图
代码片段和文件信息
// Camer360.cpp : 定义控制台应用程序的入口点。
//
#include “stdafx.h“
#include
#include “fftw3.h“
#include
#include
#include
#include
#include
#include “opencv2/highgui/highgui.hpp“
#define Min(xy) ((x)>(y)?(y):(x))
#define Max(xy) ((x)>(y)?(x):(y))
using namespace std;
using namespace cv;
int cttime basetime;
//----------------------------------------------
#define PI 3.14159265
#define NPOS 3
float rat0 = 0.035; // 匹配参数,H方向用于图像配准的面积比例取值范围[0 1.0]
float pos0[NPOS] = {0.20.50.8}; // 匹配参数,选取用于图像配准的roi图像中心位置,H方向,取值范围[0.5*rat 1.0-0.5*rat]
float rat1 = 0.05f;//(1080*0.05) //图像拼接参数, W方向在pos1位置截取rat1比例的图像,用于拼接全景图
float pos1 = 0.5; //图像拼接参数, W方向在pos1位置截取rat1比例的图像,用于拼接全景图
//-----------------------------------------------
void PhaseCorrelation2D(const BYTE *signal //原信号
const BYTE *pattern //带配准信号
int nRow //图像的高
int nCol //图像的宽
int &height_offset //高的偏移量
int &width_offset) //宽的偏移量
{
fftw_complex *signal_img = (fftw_complex*)fftw_malloc(sizeof(fftw_complex)*nRow*nCol);
fftw_complex *pattern_img = (fftw_complex*)fftw_malloc(sizeof(fftw_complex)*nRow*nCol);
for (int i = 0; i < nRow*nCol; i++)
{
signal_img[i][0] = signal[i];
signal_img[i][1] = 0;
}
for (int j = 0; j < nRow*nCol; j++)
{
pattern_img[j][0] = pattern[j];
pattern_img[j][1] = 0;
}
// 对两幅图像傅里叶变换
fftw_plan signal_forward_plan = fftw_plan_dft_2d(nRow nCol signal_img signal_img
FFTW_FORWARD FFTW_ESTIMATE);
fftw_plan pattern_forward_plan = fftw_plan_dft_2d(nRow nCol pattern_img pattern_img
FFTW_FORWARD FFTW_ESTIMATE);
fftw_execute(signal_forward_plan);
fftw_execute(pattern_forward_plan);
// 求互功率谱
fftw_complex *cross_img = (fftw_complex*)fftw_malloc(sizeof(fftw_complex)*nRow*nCol);
double temp;
for (int i = 0; i < nRow*nCol; i++)
{
cross_img[i][0] = (signal_img[i][0] * pattern_img[i][0]) -
(signal_img[i][1] * (-1.0*pattern_img[i][1]));
cross_img[i][1] = (signal_img[i][0] * (-1.0*pattern_img[i][1])) +
(signal_img[i][1] * pattern_img[i][0]);
temp = sqrt(cross_img[i][0] * cross_img[i][0] + cross_img[i][1] * cross_img[i][1]) + 0.001;
cross_img[i][0] /= temp;
cross_img[i][1] /= temp;
}
//对互功率谱求反变换
fftw_plan cross_backward_plan = fftw_plan_dft_2d(nRow nCol cross_img cross_img
FFTW_BACKWARD FFTW_ESTIMATE);
fftw_execute(cross_backward_plan);
// 释放内存
fftw_destroy_plan(signal_forward_plan);
fftw_destroy_plan(pattern_forward_plan);
fftw_destroy_plan(cross_backward_plan);
fftw_free(signal_img);
fftw_free(pattern_img);
double *cross_real=new double[nRow*nCol];
for (int i = 0; i < nRow*nCol; i++)
cross_real[i] = cross_img[i][0];
fftw_free(cross_img);
int max_loc = 0;//准备存放最大值的位置坐标(注意,只有一个值)
double max_vlaue = 0.0;
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 47955 2016-07-28 22:12 360camera\cache\C_0.jpg
文件 55265 2016-07-28 22:12 360camera\cache\C_1.jpg
文件 56103 2016-07-28 22:12 360camera\cache\C_10.jpg
文件 56367 2016-07-28 22:12 360camera\cache\C_11.jpg
文件 56218 2016-07-28 22:12 360camera\cache\C_12.jpg
文件 55906 2016-07-28 22:12 360camera\cache\C_13.jpg
文件 55919 2016-07-28 22:12 360camera\cache\C_14.jpg
文件 55924 2016-07-28 22:12 360camera\cache\C_15.jpg
文件 55761 2016-07-28 22:12 360camera\cache\C_16.jpg
文件 55959 2016-07-28 22:12 360camera\cache\C_17.jpg
文件 55777 2016-07-28 22:12 360camera\cache\C_18.jpg
文件 55778 2016-07-28 22:12 360camera\cache\C_19.jpg
文件 55349 2016-07-28 22:12 360camera\cache\C_2.jpg
文件 55734 2016-07-28 22:12 360camera\cache\C_20.jpg
文件 55448 2016-07-28 22:12 360camera\cache\C_21.jpg
文件 55292 2016-07-28 22:12 360camera\cache\C_22.jpg
文件 55055 2016-07-28 22:12 360camera\cache\C_23.jpg
文件 55280 2016-07-28 22:12 360camera\cache\C_24.jpg
文件 54923 2016-07-28 22:12 360camera\cache\C_25.jpg
文件 54835 2016-07-28 22:12 360camera\cache\C_26.jpg
文件 54498 2016-07-28 22:12 360camera\cache\C_27.jpg
文件 53965 2016-07-28 22:12 360camera\cache\C_28.jpg
文件 51873 2016-07-28 22:12 360camera\cache\C_29.jpg
文件 54880 2016-07-28 22:12 360camera\cache\C_3.jpg
文件 51690 2016-07-28 22:12 360camera\cache\C_30.jpg
文件 51622 2016-07-28 22:12 360camera\cache\C_31.jpg
文件 51448 2016-07-28 22:12 360camera\cache\C_32.jpg
文件 51153 2016-07-28 22:12 360camera\cache\C_33.jpg
文件 51658 2016-07-28 22:12 360camera\cache\C_34.jpg
文件 51020 2016-07-28 22:12 360camera\cache\C_35.jpg
............此处省略290个文件信息
- 上一篇:EasyUi框架,增删改查保证完整
- 下一篇:i.mx.rt1050资料
相关资源
- 虚拟现实大作业-校园全景漫游
- 720全景PTGui Pro v9.1.9 (32位、64位)
- 图像的球面投影工程和可执行程序
- opencv 360度n张图像拼接,任意角度两
- 360全景 720全景 VR 360度 720度 全景 漫游
- 浏览器中实现3D全景浏览
- 基于SIFT特征的全景图像拼接(Qt)
- 实现全景效果,线路规划并模拟运动
- 18年最新立体图像拼接
- Helios 1.3.1 录制全景视频 VR
- 100大产业链全景图-2019版.pdf
- 眼底图像拼接
- OPENCV实现ORB/SURF/SIFT + RANSAC 图像自动拼
- OpenCvSharp 读摄像头及图像拼接功能
- 车载全景环视系统相关文档
- 秀我3D自动成像系统软件
- ENVI遥感图像进行图像拼接的多光谱遥
- Krpno VR720全景图片生成工具
- OpenCV图像拼接原理解析和分模块实现
- threejs 天空盒 50+
- 体验引擎 游戏设计全景探秘
- 基于机器视觉的全景图像拼接
- OpenCV实现相位相关图像配准
- 相位相关法.rar
- 网页全景图
- 图像拼接技术的由来、现状以及拼接
- 基于halcon实现图像拼接技术
- 全景图像拼接技术研究现状综述
- 基于fast的图像拼接
- Pano2vr 全景图皮肤
评论
共有 条评论