我面临性能下降的问题。我进行了一些研究,似乎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/