【发布时间】:2013-08-01 12:02:44
【问题描述】:
我正在尝试使用 OpenCV 找到棋盘的角。
我使用的图像包含两个棋盘,但我只对其中一个的子区域感兴趣。 下图为原图。
使用 GIMP,然后我选择了感兴趣的区域,并将所有其他像素设置为默认值。
我实际上并没有裁剪图像,因为我已经使用此图像尺寸校准了相机并且我不想更改它。 该操作应该等同于更改图像矩阵中的值,但我更喜欢使用 GIMP 进行操作。这是一个一次性的实验,使用图形工具而不是使用代码执行该操作更快。
生成的图像包含一个 24x5 角的棋盘,但函数 findChessboardCorners 找不到任何东西。
这是我正在使用的 Python 代码:
>>> img = cv2.imread('C:\\Path\\To\\C4-Cropped.png', 0)
>>> cv2.findChessboardCorners(img, (24, 5))
(False, None)
>>> cv2.findChessboardCorners(img, (5, 24))
(False, None)
我也试过设置自适应阈值,但还是不行
>>> cv2.findChessboardCorners(img, (24, 5), flags=cv2.cv.CV_CALIB_CB_ADAPTIVE_THRESH)
(False, None)
这看起来很奇怪。我过去多次使用过 OpenCV 的这个功能,并且它总是有效,即使图像看起来比这个更复杂。 该区域的照明不是均匀的,但函数应该足够强大以处理它。
使用 GIMP 临时创建的 人工 图像有什么问题吗? 我怎样才能找到角落?
任何建议将不胜感激。
【问题讨论】:
-
你应该在你的问题中包含
findChessboardCorners这个函数......否则真的没有任何人可以帮助...... :) -
您的意思是在问题的标签中吗?不幸的是,我的声誉还不够高,无法创建自定义标签
-
你先转灰度了吗?
标签: python opencv computer-vision camera-calibration