2017-10-17 35 views
0

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

这是图像输入的VGA分辨率-green矩形是矩形trackableArea

希望的输出,但在VGA

通过生成:

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

什么时候 我尽量让重映射仅在特定的区域:

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

我预期 - 与trackableArea矩形的所需的分辨率拉伸所需的图像。

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

任何想法如何使它成为可能或如何remap()应该看起来像?

+0

为什么qt的标签? – AlexanderVX

+0

我使用qt框架,所以也可以使用qt方法和opencv。 – RobertLT

回答

0

我的回答对自己:)所以这有助于:

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

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