您当前的位置:首页 > IT编程 > python
| C语言 | Java | VB | VC | python | Android | TensorFlow | C++ | oracle | 学术与代码 | cnn卷积神经网络 | gnn | 图像修复 | Keras | 数据集 | Neo4j | 自然语言处理 | 深度学习 | 医学CAD | 医学影像 | 超参数 | pointnet | pytorch | 异常检测 | Transformers | 情感分类 | 知识图谱 |

自学教程:基于python opencv单目相机标定的示例代码

51自学网 2022-02-21 10:36:37
  python
这篇教程基于python opencv单目相机标定的示例代码写得很实用,希望能帮到您。

相机固定不动,通过标定版改动不同方位的位姿进行抓拍

import cv2camera=cv2.VideoCapture(1)i = 0while 1:    (grabbed, img) = camera.read()    cv2.imshow('img',img)    if cv2.waitKey(1) & 0xFF == ord('j'):  # 按j保存一张图片        i += 1        u = str(i)        firename=str('./img'+u+'.jpg')        cv2.imwrite(firename, img)        print('写入:',firename)    if cv2.waitKey(1) & 0xFF == ord('q'):        break

将抓拍好的图片存放程序的同一级目录下 运行标定代码如下:

# 相机标定import cv2# 修改目录# 首先读取图像并转为灰度图img = cv2.imread('c1.jpg')gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)# cv2.imshow("img",img)# cv2.imshow("gray",gray)# 使用OpenCV的cv2.findChessboardCorners()函数找出棋盘图中的对角(即图片中黑白相对的点的坐标),# 同时使用cv2.drawChessboardCorners()将之画出来# cv2.findChessboardCorners参数patternSize取(9,5)--棋盘图中每行和每列交点的个数# 其原因在于导入的图片./camera_cal/calibration1.jpg数一下交点的数目,一行有9个,一列有5个# Adam博客当中取(9,6)原因在于他的图和我的图不一样,认真数一下可以发现他的图确实是一行9个一列6个角点# 事实证明,可以取任何只要在size小于图片中的交点数即可# 函数解析参见官网https://docs.opencv.org/3.3.0/dc/dbb/tutorial_py_calibration.html# It returns the corner points and retval which will be True if pattern is obtained.# These corners will be placed in an order (from left-to-right, top-to-bottom)ret, corners = cv2.findChessboardCorners(gray, (9, 5),None)print(ret)print(corners)  # 交点坐标if ret == True:    img = cv2.drawChessboardCorners(img, (9, 5), corners, ret)cv2.imshow("final",img)cv2.waitKey()cv2.destroyAllWindows()

到此这篇关于基于python opencv单目相机标定的文章就介绍到这了,更多相关python opencv相机标定内容请搜索51zixue.net以前的文章或继续浏览下面的相关文章希望大家以后多多支持51zixue.net!


Python抓取今日头条街拍图片数据
python图片格式转换脚本
万事OK自学网:51自学网_软件自学网_CAD自学网自学excel、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。