Why opencv cannot detect 10x8 chessboard, but 9x6, 8x8 is working find

ret, corners = cv2.findChessboardCorners(gray, chessboard_size, None)


no idea, why it does not find your 10x8 board there,

however, if you want to use it for calibration or similar,
it needs one odd and one even side, like 9x6, 11x8, etc. to avoid symmetry problems
(rotate your board 90°, 180° , and you’ll see !)

understood, now I using 9x6 just wondering how this happen.

just try to ‘mark the image’ here, and you see, it does not have any white borders !
you need a ‘quiet zone’ , >= 1 square size around it

ok, it works!

interestingly 8x8 is able to do it, anything different in math?

sure, it will find the grid.
the maths problems arise, if you try to derive the pose from it, later

thank you for prompt help. I try understand the algorithm

there must be white (blank paper) around the pattern.

only internal nodes count.

your first picture counts as 9 by 7.