|
| 1 | +# -*- coding: utf-8 -*- |
| 2 | +# @Time : 2017/11/14 17:09 |
| 3 | +# @Author : play4fun |
| 4 | +# @File : cc1.py |
| 5 | +# @Software: PyCharm |
| 6 | + |
| 7 | +""" |
| 8 | +camera_calibration1.py: |
| 9 | +
|
| 10 | +有结果,但是摄像头分辨率太高,程序运行太慢了 |
| 11 | +
|
| 12 | +所用棋盘来自 |
| 13 | +http://wiki.ros.org/camera_calibration/Tutorials/MonocularCalibration?action=AttachFile&do=view&target=check-108.pdf |
| 14 | +""" |
| 15 | +import numpy as np |
| 16 | +import cv2 |
| 17 | + |
| 18 | +criteria = (cv2.TERM_CRITERIA_EPS + cv2.TERM_CRITERIA_MAX_ITER, 30, 0.001) |
| 19 | +cap = cv2.VideoCapture(0) |
| 20 | + |
| 21 | + |
| 22 | +#等比缩放 |
| 23 | +frame_height = cap.get(cv2.CAP_PROP_FRAME_HEIGHT)#4 ,720 |
| 24 | +frame_width = cap.get(cv2.CAP_PROP_FRAME_WIDTH)#3 ,1280 |
| 25 | +frame_height=int(480/frame_width*frame_height)#270 |
| 26 | +ret = cap.set(cv2.CAP_PROP_FRAME_HEIGHT, frame_height)#高 |
| 27 | +ret = cap.set(cv2.CAP_PROP_FRAME_WIDTH, 480) |
| 28 | +# |
| 29 | + |
| 30 | +while cap.isOpened(): |
| 31 | + # img = cv2.imread(fname) |
| 32 | + ret, img = cap.read() |
| 33 | + |
| 34 | + gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) |
| 35 | + |
| 36 | + ret, corners = cv2.findChessboardCorners(image=gray, patternSize=(6, 4), corners=None) |
| 37 | + ''' |
| 38 | + 第一个参数Image,传入拍摄的棋盘图Mat图像,必须是8位的灰度或者彩色图像; |
| 39 | +第二个参数patternSize,每个棋盘图上内角点的行列数,一般情况下,行列数不要相同,便于后续标定程序识别标定板的方向; |
| 40 | +第三个参数corners,用于存储检测到的内角点图像坐标位置,一般用元素是Point2f的向量来表示:vector<Point2f> image_points_buf; |
| 41 | +第四个参数flage:用于定义棋盘图上内角点查找的不同处理方式,有默认值。 |
| 42 | + ''' |
| 43 | + print(corners) |
| 44 | + print('---------') |
| 45 | + if ret == True: |
| 46 | + # objpoints.append(objp) |
| 47 | + corners2 = cv2.cornerSubPix(gray, corners, (11, 11), (-1, -1), criteria) |
| 48 | + # imgpoints.append(corners) |
| 49 | + # Draw and display the corners |
| 50 | + cv2.drawChessboardCorners(img, (6, 4), corners2, ret) |
| 51 | + |
| 52 | + cv2.imshow('img', img) |
| 53 | + |
| 54 | + key = cv2.waitKey(delay=10) |
| 55 | + if key == ord("q"): |
| 56 | + break |
| 57 | + |
| 58 | +cv2.destroyAllWindows() |
0 commit comments