Я использую findChessboardCorners в Opencv, используя python, и с более чем 50 выборками ни один не был успешно обнаружен. Пример: FailedChessboardSample1 FailedchessboardSample2 Я делаю это для калибровки камеры.
код:
import cv2
import glob
import numpy as np
images = glob.glob('Chessboards/*.jpg')
criteria = (cv2.TERM_CRITERIA_EPS + cv2.TERM_CRITERIA_MAX_ITER, 30, 0.001)
for fname in images:
img = cv2.imread(fname)
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
ret, corners = cv2.findChessboardCorners(gray, (7, 6),None)
cv2.imshow("img", gray)
cv2.waitKey(100)
print(ret)
if ret == True:
corners2 = cv2.cornerSubPix(gray,corners,(11,11),(-1,-1),criteria)
img = cv2.drawChessboardCorners(img,(7,6), corners2,ret)
cv2.imshow(fname, img)
cv2.waitKey()
cv2.destroyAllWindows()