首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Opencv调整针法

Opencv调整针法
EN

Stack Overflow用户
提问于 2015-03-25 08:05:37
回答 1查看 655关注 0票数 0

我在做Opencv视频的马赛克。我用这个例子来拼接视频的帧:detection.html。最后,我这样做是为了将新框架与在传递迭代时创建的缝纫合并起来:

代码语言:javascript
运行
复制
Mat H = findHomography(obj, scene, CV_RANSAC);

static Mat rImg;
warpPerspective(vImg[0], rImg, H, Size(vImg[0].cols, vImg[0].rows), INTER_NEAREST);//(vImg[0], rImg, H, Size(vImg[0].cols * 2, vImg[0].rows * 2), CV_INTER_LINEAR);

static Mat final_img(Size(rImg.cols*2, rImg.rows*2), CV_8UC3);
static Mat roi1(final_img, Rect(0, 0, vImg[1].cols, vImg[1].rows));
Mat roi2(final_img, Rect(0, 0, rImg.cols, rImg.rows));

rImg.copyTo(roi2);
vImg[1].copyTo(roi1);

imwrite("stitch.jpg", final_img);
vImg[0] = final_img;

这就是我的问题:很明显,每次迭代时,缝纫都会变大,那么我如何调整它的大小,使其适合final_img图像呢?

编辑对不起但我不得不删除图像

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-03-25 08:26:02

对于第二个问题,,您所观察到的是,在估计的同调中出现了一个错误。这可能来自于:

  1. 漂移(如果沿着序列链接同音),即在数十帧后积累并变得大的小错误。
  2. 或者(更有可能),因为您的参考图像对于您的新图像来说太老了,而且它们所显示的匹配点太少,无法给出一个精确的单形,但仍然足以在cv::findHomography()中找到通过质量测试的匹配点。

关于您的第一个问题,,您需要添加一些代码来跟踪固定坐标帧中拼接图像的当前边界。我建议选择与第一幅图像相连的坐标。

然后,当你缝一个新的图像,你真正要做的是把这个图像投射到这个坐标框上。您可以首先计算传入帧的四个角的投影坐标,测试它们是否适合当前的拼接结果,如果需要,可以将其复制到新的(更大的)图像中,然后继续对新图像进行拼接。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29250324

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档