gpt4 book ai didi

c++ - 如何为视口(viewport)应用程序重新采样图像的子区域?

转载 作者:太空宇宙 更新时间:2023-11-03 23:00:57 25 4
gpt4 key购买 nike

我正在使用 OpenCV 实现一个应用程序,该应用程序提供可在较大图像上移动和调整大小的 2D 视口(viewport)。

为此,我需要能够获取源图像的​​一个子区域并以子像素精度将其渲染到输出。实际上,该操作是结合裁剪和调整大小。

我可以使用 getRectSubPix 以亚像素精度裁剪图像然后将其调整为我的输出视口(viewport)的分辨率。然而,这有一个问题。由于 getRectSubPix 返回与源图像具有相同分辨率的图像,因此它将视口(viewport)限制为具有整数宽度和高度的尺寸,就源图像分辨率而言。这在应用程序中是 Not Acceptable ,因为我们需要能够平滑缩放。

我可以先将图像调整为与输出视口(viewport)相同的分辨率,然后再裁剪它。然而,当处理大图像上的小视口(viewport)时,这将需要大量不必要的工作和空间。

我需要的是一个组合过程,可以同时调整图像大小和裁剪图像。有谁知道使用 Open CV 执行此操作的最简单方法吗?

最佳答案

cv::remap是我正在寻找的功能。它允许您从源图像中的指定位置采样每个输出像素,这些位置是您通过双 channel 矩阵提供的。

它比专用函数更繁琐,但确实有诀窍(至少扩大......在这些情况下获得良好的结果)。

关于c++ - 如何为视口(viewport)应用程序重新采样图像的子区域?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18573784/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com