所以我对OpenCV(2.1)很新,所以请记住这一点。OpenCV cvRemap裁剪图像
所以我设法校准我使用的廉价网络摄像头(使用广角附件),使用棋盘校准方法产生内在和失真系数。
然后,我可以毫无困难地重新输入这些值并生成图像映射,然后将其应用于视频输入以更正输入图像。
但是我遇到了一个问题。我知道它何时扭曲/校正图像,它会创建多个倾斜部分,然后对图像进行格式化以剪出任何黑色区域。我的问题是,我可以查看完整的扭曲图像,包括一些有黑色区域的区域吗?以下是我尝试传达的黑色区域的示例,如果我的术语已关闭:
更好地传达我所说的区域的图像可以是found here!此图像在post中被发现。
当前: cvRemap()基本上返回上面链接的图像中的黄色框,但我希望看到整个图像,因为有相关数据我希望从中获得。
我已经试过什么:将缩放转换到图像映射到完整的图像(包括拉伸部件)装入框架
CvMat *intrinsic = (CvMat*)cvLoad("Intrinsics.xml");
CvMat *distortion = (CvMat*)cvLoad("Distortion.xml");
cvInitUndistortMap(intrinsic, distortion, mapx, mapy);
cvConvertScale(mapx, mapx, 1.25, -shift_x); // Some sort of scale conversion
cvConvertScale(mapy, mapy, 1.25, -shift_y); // applied to the image map
cvRemap(distorted,undistorted,mapx,mapy);
的cvConvertScale,当我想我已经对准了X/y正确地移动(猜测/检查),是以某种方式扭曲图像地图使得校正无用。这里可能涉及到一些数学问题,我没有正确跟踪/理解。
有没有人有任何其他建议来解决这个问题,或者我可能做错了什么?我也尝试写我自己的代码来修复失真问题,但让我们只是说OpenCV已经知道如何做得很好。
mathematical.coffee,我不能够感谢你。这正是我所需要的,并且详细的解决方案,我能够相应地实现它!非常感谢! – user1145707 2012-01-13 14:32:57
不用担心:)它花了我永远的工作(我发现在线文档有时难以理解,特别是当我使用python界面时)。一个非常宝贵的资源(我发现)是OpenCV包含的例子(在'OpenCV-2.x.x/samples/pick_your_language'中)。 – 2012-01-14 00:41:54
但修正图像仍然有黑色区域或边界。 – Abc 2017-07-04 08:31:45