摄像机标定--我见过最懒的方法

1.百度上找半天各种标定的方法,然而复制代码下来各种报错,或者就是没讲清楚到底怎么操作。

后来我突然想到opencv自带的例程说不到也有标定的代码,很幸运在sample/python/下找到了calibrate.py这个程序。

打开后里面有如下代码:

'''
camera calibration for distorted images with chess board samples
reads distorted images, calculates the calibration and write undistorted images

usage:
    calibrate.py [--debug <output path>] [--square_size] [<image mask>]

default values:
    --debug:    ./output/
    --square_size: 1.0
    <image mask> defaults to ../data/left*.jpg
'''

找到了关键点:上面我复制的代码的最后一行,这行说明,标定用的图片

保存在sample/data文件夹下,并且名字都为leftXX.jpg。进去后可以看到

有14张这样命名的图片。这时很机智的按它图片的样式打印了标定板,并

拍下了14张图片,以同样方式命名,接下来狸猫换太子,把自己摄像头拍

的照片放到data文件夹下,把它的替换掉。到此,可达鸭眼睛一眨,发现事情并没完。

重新打开python文件夹下的calibrate.py文件,里面代码如下:

square_size = float(args.get('--square_size'))

    pattern_size = (9,6)
    pattern_points = np.zeros((np.prod(pattern_size), 3), np.float32)

扫描二维码关注公众号,回复: 3919126 查看本文章

我复制的代码第二行pattern_size,这是指你拍的图片中的点的个数,如果你不知道

怎么数,你就看一下它原来的图片每一行有几个点,竖着有几个点,与这个size对比

一下就知道该数哪些点了。

然后把你标定板上点的数量填到这个函数里,至此,真的完成了。

在终端里python calibrate.py就完事了。如果不信,你可以打开你data文件夹下的照片,

以及python/out文件夹下的对应的照片,可以很明显的经过了标定处理。

这个是我在ubuntu下操作的,在win10下我不懂怎么搞,但我估计大同小异,应该也是可以的。

如果python编译calibrate.py出现错误的话,那肯定是你没用python编译过opencv,有些库没装。

个人习惯用python编译opencv

猜你喜欢

转载自www.cnblogs.com/wxkang/p/9902729.html
今日推荐