【问题标题】:How to make remap of particular area in OpenCV如何在 OpenCV 中重新映射特定区域
【发布时间】:2017-10-18 19:11:30
【问题描述】:

我正面临性能下降问题。我做了一些研究,似乎重新映射功能需要太多时间。图像大小为 VGA,但有趣的区域大约是该区域的 1/4。因此,我只想对这个区域使用 remap() ,最终得到大约 1/4 VGA 区域的图像。

这是 VGA 分辨率的图像输入 - 绿色矩形是 trackableArea Rect

想要的输出,但在 VGA 中

生成者:

remap(originalCornersSamples[i], rview, map1, map2, INTER_NEAREST);

当我尝试仅在特定区域重新映射时:

remap(frame_bgr, rview, map1(trackableArea), map2(trackableArea), INTER_NEAREST);

我得到了预期的结果 - 以 trackableArea rect 的所需分辨率拉伸了所需的图像。

map1 和 map2 是从 getPerspectiveTransform 生成的,用于从输入图像中仅获取电视屏幕。 trackableArea 是一个像这里这样的 Rect(绿线):

任何想法如何使它成为可能或 remap() 应该是什么样子?

【问题讨论】:

  • 为什么是qt标签?
  • 我用的是qt框架,所以qt方法和opencv也可以用。

标签: image opencv


【解决方案1】:

我自己回答 :) 所以这有帮助:

resize(map1,modified,Size(trackableArea.width,trackableArea.height), 0, 0,  INTER_CUBIC );

remap(frame_bgr, rview, modified, map2(trackableArea), INTER_NEAREST);

【讨论】:

    猜你喜欢
    • 2018-10-12
    • 1970-01-01
    • 1970-01-01
    • 2019-12-07
    • 2012-07-14
    • 1970-01-01
    • 1970-01-01
    • 2020-11-06
    • 1970-01-01
    相关资源
    最近更新 更多