91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 21KB
    文件類型: .zip
    金幣: 2
    下載: 0 次
    發布日期: 2021-05-10
  • 語言: 其他
  • 標簽: 圖像拼接??SIFT??

資源簡介

航拍圖片全景拼接代碼

資源截圖

代碼片段和文件信息


#include?“util.h“
#include?“match.h“
#include?“warp.h“
#include?“mst.h“
#include?“exposure_compensator.h“

#include?
#include?
#include?
#include?
#include?
#include?


using?namespace?std;
using?namespace?cv;
using?namespace?cv::detail;

bool?matchThreshold?=?0.0f;

Rect?compose_roi(vector?imgs?vector?corners)
{
int?n?=?imgs.size();
int?x1?x2?y1?y2;
x1?=?corners[0].x;
x2?=?corners[0].x?+?imgs[0].cols;
y1?=?corners[0].y;
y2?=?corners[0].y?+?imgs[0].rows;
for(int?i?=?1;?i? {
x1?=?(std::min)(corners[i].x?x1);
y1?=?(std::min)(corners[i].y?y1);
x2?=?(std::max)(corners[i].x?+?imgs[i].cols?x2);
y2?=?(std::max)(corners[i].y?+?imgs[i].rows?y2);
}
return?Rect(x1?y1?x2-x1?y2-y1);
}

Point?compose_images_rough(vector?imgs?vector?masks?vector?corners?Mat?&dst?Mat?&dst_mask)
{
int?n?=?imgs.size();
Rect?roi?=?compose_roi(imgs?corners);
Point?corner?=?roi.tl();
dst.create(roi.size()?CV_8UC3);
dst_mask.create(roi.size()?CV_8U);
for(int?i?=?0;?i? {
int?x?=?corners[i].x?-?corner.x;
int?y?=?corners[i].y?-?corner.y;
imgs[i].copyTo(dst(Rect(x?y?imgs[i].cols?imgs[i].rows))?masks[i]);
masks[i].copyTo(dst_mask(Rect(x?y?imgs[i].cols?imgs[i].rows))?masks[i]);
}
return?corner;
}

Rect?get_mask_roi(Mat?mask)
{
int?x1?x2?y1?y2;
x2?=?y2?=?0;
x1?=?mask.cols?-?1;
y1?=?mask.rows?-?1;
for(int?y?=?0;?y? {
uchar?*mask_ptr?=?mask.ptr(y);
for(int?x?=?0;?x? {
if(mask_ptr[x]?!=?0)
{
if(x? if(y? if(x?>?x2)?x2?=?x;
if(y?>?y2)?y2?=?y;
}
}
}
return?Rect(x1?y1?x2-x1+1?y2-y1+1);
}

/*
所有的特征提取、匹配都是在work_scale
*/
double?work_scale?=?0.4;
static?int?stitch_idx?=?1;
string?src_dir;

/*
將srcs[1]~srcs[n]增量式拼接到srcs[0]
srcs: srcs[0]是基準圖像,srcs[i]是增量圖像
mask0: srcs[0]的mask
feat0: srcs[0]的特征
*/
int?stitch_images(vector?srcs?Mat?mask0?ImageFeatures?feat0?
Mat?&dst?Mat?&dst_mask?ImageFeatures?&dst_feat?vector?&success_mask)
{
int?num_img?=?srcs.size();

/***********??????????work?scale?????????????***********/
cout?< vector?srcs_ws(num_img);
Mat?mask0_ws;
resize(mask0?mask0_ws?Size()?work_scale?work_scale);
vector?feats(num_img);
Ptr?finder?=?new?SurfFeaturesFinder();
for(int?i?=?0;?i? resize(srcs[i]?srcs_ws[i]?Size()?work_scale?work_scale);

// 是否開啟增量式特征提取

bool?is_acc_feat?=?false;
if(is_acc_feat)
{
// 如果feat0里面沒有特征,就重新提取,否則直接使用
if(feat0.keypoints.size()?==?0)
(*finder)(srcs_ws[0]?feats[0]);
else
feats[0]?=?feat0;
for(int?i?=?1;?i? (*finder)(srcs_ws[i]?feats[i]);
}
else
{
#pragma?omp?parallel?for
for(int?i?=?0;?i? (*finder)(srcs_ws[i]?feats[i]);
dst_feat?=?feats[0];
}
finder->collectGarbage();
// feature?matching
cout?<

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2016-12-28?02:41??AerialImageStitch-master\
?????文件???????22320??2016-12-28?02:41??AerialImageStitch-master\aerial_stitch.cpp
?????文件????????6730??2016-12-28?02:41??AerialImageStitch-master\exposure_compensator.cpp
?????文件????????1196??2016-12-28?02:41??AerialImageStitch-master\exposure_compensator.h
?????文件????????3963??2016-12-28?02:41??AerialImageStitch-master\match.cpp
?????文件?????????381??2016-12-28?02:41??AerialImageStitch-master\match.h
?????文件????????2308??2016-12-28?02:41??AerialImageStitch-master\mst.cpp
?????文件?????????651??2016-12-28?02:41??AerialImageStitch-master\mst.h
?????文件???????16975??2016-12-28?02:41??AerialImageStitch-master\streetslide.cpp
?????文件???????????0??2016-12-28?02:41??AerialImageStitch-master\streetslide.h
?????文件????????2544??2016-12-28?02:41??AerialImageStitch-master\util.cpp
?????文件????????1247??2016-12-28?02:41??AerialImageStitch-master\util.h
?????文件????????7992??2016-12-28?02:41??AerialImageStitch-master\warp.cpp
?????文件?????????604??2016-12-28?02:41??AerialImageStitch-master\warp.h

評論

共有 條評論