我面临性能下降的问题。我进行了一些研究,似乎remap函数花费了太多时间。图像大小为VGA,但有趣的区域大约占该区域的1/4。因此,我只想在此区域使用remap()并最终获得大约VGA面积1/4的图像。

这是以VGA分辨率输入的图像-绿色rect是可跟踪的

所需的输出但在VGA中

产生者:

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

当我尝试仅在特定区域进行重新映射时:
remap(frame_bgr, rview, map1(trackableArea), map2(trackableArea), INTER_NEAREST);

我得到了预期的结果-使用trackableArea rect的所需分辨率拉伸(stretch)了所需的图像。

map1和map2是从getPerspectiveTransform生成的,仅从输入图像中获取电视屏幕。 trackableArea是一个Rect,如下所示(绿线):

有什么想法使之成为可能或remap()的外观如何?

最佳答案

我对自己说:)因此,这有所帮助:

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

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

关于image - 如何在OpenCV中重新映射特定区域,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46799916/

10-11 03:24