#!/usr/bin/env python3 import numpy as np import cv2 as cv import glob # Open camera cap = cv.VideoCapture(0) if not cap.isOpened(): print("Cannot open camera") exit() # termination criteria criteria = (cv.TERM_CRITERIA_EPS + cv.TERM_CRITERIA_MAX_ITER, 30, 0.001) # prepare object points, like (0,0,0), (1,0,0), (2,0,0) ....,(6,5,0) objp = np.zeros((6*7,3), np.float32) objp[:,:2] = np.mgrid[0:7,0:6].T.reshape(-1,2) # Arrays to store object points and image points from all the images. objpoints = [] # 3d point in real world space imgpoints = [] # 2d points in image plane. images = glob.glob('*.jpg') while True: # Capture frame-by-frame ret, frame = cap.read() # if frame is read correctly ret is True if not ret: print("Can't receive frame (stream end?). Exiting ...") break # Our operations on the frame come here grey = cv.cvtColor(frame, cv.COLOR_BGR2GRAY) # Find the chess board corners ret, corners = cv.findChessboardCorners(grey, (7,6), None) if ret == True: objpoints.append(objp) print( "Found corners", corners) corners2 = cv.cornerSubPix(grey,corners, (11,11), (-1,-1), criteria) imgpoints.append(corners) # Draw and display the corners cv.drawChessboardCorners(frame, (7,6), corners2, ret) cv.imshow('frame', frame) cv.waitKey(1500) else: print( "No image", corners) cv.destroyAllWindows()