[英]OpenCV resize returns empty image when aspect ratio is inverted
我在 CUDA C++ 环境中使用 OpenCV 库来调整通过 GPU 处理获得的图像的大小。 处理的关键步骤包括对图像重新采样和反转纵横比。
示例问题:
调整 2000 x 500 的大小并使用 CUDA 将其转换为 500 x 2000 的图像
这是通过以下 OpenCV 命令尝试的:
cv::cuda::resize(d_src,d_dst,cv::Size(500,2000),cv::INTER_CUBIC);
其中d_src
和d_dst
是合适的 GpuMats,尺寸为 2000 x 500 和 500 x 2000。 允许的最大调整大小是 2000x2000 或 500x500 的正方形。 只要纵横比不反转,该函数就会按预期运行。 我还尝试通过扩展和缩减分两步进行插值:
cv::cuda::resize(d_src,d_buffer,cv::Size(2000,2000),cv::INTER_CUBIC);
cv::cuda::resize(d_buffer,d_dst,cv::Size(500,2000),cv::INTER_CUBIC);
cv::cuda::resize(d_src,d_buffer,cv::Size(500,500),cv::INTER_CUBIC);
cv::cuda::resize(d_buffer,d_dst,cv::Size(500,2000),cv::INTER_CUBIC);
这两种方法都失败并且不是首选,因为它们消耗了大量额外的 GPU 内存。
有没有人遇到过这个功能的类似问题? 有人可以帮我吗?
先感谢您
没关系。 这个问题可以通过设置size参数为auto来解决:
cv::cuda::resize(d_src,d_dst,d_dst.size(),0,0,cv::INTER_CUBIC);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.