gpt4 book ai didi

opencv InitUndistortRectifyMap 贴图大小

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

我正在使用 opencv 进行图像校正,但我想使用 c 函数 cvInitUndistortRectifyMap 返回的 map (mapx 和 mapy)自己进行映射(通常由 cvremap 完成)。在这个过程中,我发现 opencv 只返回原始图像大小的 map 很奇怪

这意味着在原始图像映射到其大小之外的区域中,校正后的图像只是被裁剪了,因为映射只是图像的大小?!您能否获得完整的映射,以便获得整个校正后的图像,而不仅仅是原始图像(大小)内的部分图像?

最佳答案

不仅仅是图像大小的问题,其原因是默认情况下,cvInitUndistortRectifyMap 生成的 map 仅指向源图像中的有效像素。你想要的是获取所有像素。

为此,您可以使用cvInitUndistortRectifyMapnewCameraMatrix 参数。 newCameraMatrix 的值是通过首先调用 cvGetOptimalNewCameraMatrix(参见 this link)并设置 alpha 参数获得的。如链接中所述:

  • 如果 alpha = 0,未失真图像中的所有像素都将有效(您现在获得的)。
  • 如果 alpha = 1,则所有源图像像素将保留在未失真图像(您想要的)中。一些像素不会匹配源图像的任何位置,因此它们将是黑色的。

如果您愿意,您可以使用cvGetOptimalNewCameraMatrixnewImageSize 参数改变校正图像的所需大小,但这不会改变您在结果中获得的像素.

关于opencv InitUndistortRectifyMap 贴图大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13647796/

25 4 0
文章推荐: android - 从 android 中的图像使用指纹检测
文章推荐: javascript - jQuery动态添加的文字不会加载网页字体样式
文章推荐: html - 为什么我会从
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com