首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用superres从多幅图像创建超分辨率图像

使用superres从多幅图像创建超分辨率图像
EN

Stack Overflow用户
提问于 2014-12-17 20:10:40
回答 1查看 2.3K关注 0票数 2

我有一系列的图像,并从中提取一张卡片。在此过程之后,卡将正确地对齐并投影回平面(warpPerspective)。然而,它的质量太低,无法从卡片上读取文本。因此,我试图使用superres模块来提高分辨率,但是文档非常肤浅,我还没有找到如何将多幅图像传递给算法。

我尝试实现一个定制的FrameSource,它基本上是一个std::vector的适配器,但出于某种原因,我得到了一个分段错误。

代码语言:javascript
复制
class InterFrameSource : public superres::FrameSource {
  std::vector<cv::Mat> frames;
  std::vector<cv::Mat>::iterator iter;

public:
  InterFrameSource(std::vector<cv::Mat> _frames) : frames(_frames)
  {
    reset();
  }

  virtual void nextFrame(OutputArray _frame)
  {
    _frame.getMatRef().setTo(*iter);
    ++iter;
  }

  virtual void reset() {
    iter = frames.begin();
  }
};

编辑 cv::Mat都是纯CPU的.

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-12-17 20:37:30

好吧,两天后我终于拿到了。我需要反向复制逻辑:

代码语言:javascript
复制
virtual void nextFrame(OutputArray _frame)
{
  if (iter == frames.end()) return;

  iter->copyTo(_frame);
  ++iter;
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27533993

复制
相关文章

相似问题

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