怎样发展网站,食品类建设网站的目的,WordPress邮箱验证 注册,网站关键词优化外包服务链接#xff1a; 单目相机标定#xff08;使用Matlab#xff09; 用Matlab对单目相机参数的标定步骤#xff08;保姆级教程#xff09;
1.准备代码
调用摄像头代码#xff08;用于测试摄像头是否可用#xff09;#xff1a;
#https://blog.csdn.net/qq_37759113/art…链接 单目相机标定使用Matlab 用Matlab对单目相机参数的标定步骤保姆级教程
1.准备代码
调用摄像头代码用于测试摄像头是否可用
#https://blog.csdn.net/qq_37759113/article/details/124366513
import cv2def read_usb_capture():# 选择摄像头的编号camera cv2.VideoCapture(0)# # 设置分辨率#camera.set(cv2.CAP_PROP_FRAME_WIDTH, 1280)#camera.set(cv2.CAP_PROP_FRAME_HEIGHT, 960)camera.set(cv2.CAP_PROP_FRAME_WIDTH, 1200)camera.set(cv2.CAP_PROP_FRAME_HEIGHT, 900)# 添加这句是可以用鼠标拖动弹出的窗体cv2.namedWindow(real_img, cv2.WINDOW_NORMAL)while(camera.isOpened()):# 读取摄像头的画面ret, frame camera.read()# 真实图cv2.imshow(real_img, frame)# 按下q就退出if cv2.waitKey(1) 0xFF ord(q):break# 释放画面camera.release()cv2.destroyAllWindows()if __name__ __main__:read_usb_capture()使用摄像头拍照代码
#https://www.jb51.net/article/256780.htm
import cv2
import sys
#引入库cap cv2.VideoCapture(0) #读取笔记本内置摄像头或者0号摄像头i 0
while True:ret, frame cap.read()if (ret):cv2.namedWindow(Video01,0) #创建一个名为Video01的窗口0表示窗口大小可调#cv2.resizeWindow(Video01,640,480) ##创建一个名为Video01的窗口设置窗口大小为 1920 * 1080 与上一个设置的 0 有冲突#cv2.resizeWindow(Video01,640,330)cv2.imshow(Video01, frame)#等待按键按下c cv2.waitKey(1) 0xff#若按下w则保存一张照片if c ord(w):cv2.imwrite(C:/Users/wuxiao/Desktop/test/%d.bmp %i, frame) #自己设置拍摄的照片的存储位置print(Save images %d succeed! %i)i1#若按下Q键则退出循环if c ord(q):break#随时准备按q退出
cap.release()
#关掉所有窗口
cv2.destroyAllWindows()图像剪裁代码用于双目相机
#https://www.jb51.net/article/256780.htm
import numpy as np
import cv2#img1 cv2.imread(r/Users/inbc/Desktop/zuo/Left1.bmp)
#img2 cv2.imread(r/Users/inbc/Desktop/you/Right1.bmp)
for i in range(0,31) :#imgT cv2.imdecode(np.fromfile(./images/%d.bmp %i ,dtypenp.uint8), -1)imgT cv2.imdecode(np.fromfile(C:/Users/wuxiao/Desktop/stereo/%d.bmp %i ,dtypenp.uint8), -1) #读取拍摄的左右双目照片# cv2.imshow(zuo, img1[300:1200, 500:2000])# cv2.imshow(you, img2[300:1200, 500:2000])# cv2.waitKey(0)#设置左右照片的存储位置cv2.imwrite(C:/Users/wuxiao/Desktop/stereo/zuo/reLeft%d.bmp %i ,imgT[0:480, 0:320] )#imgL的第一个参数是图片高度像素范围第二个参数是图片宽度的像素范围cv2.imwrite(C:/Users/wuxiao/Desktop/stereo/you/reRight%d.bmp %i ,imgT[0:480, 320:640] )print(Resize images%d Fnished! %i)print(Fnished All!!!)
2.具体操作
链接 单目相机标定使用Matlab 用Matlab对单目相机参数的标定步骤保姆级教程 补充
2.1. 删除误差过大的图片的操作
如右上角所示单张图像误差会有较大的点击柱状图中误差较大的一项在最左边会蓝色显示该图片右键点击“Remove and Recalibrate”即可删去该图即计算内参时不考虑该图
2.2. 内参中需要关注的三组参数
直接在命令行内输入
cameraParams.IntrinsicMatrix%相机内参
cameraParams.RadialDistortion%相机径向畸变参数
cameraParams.TangentialDistortion%相机切向畸变参数注意
matlab计算的内参矩阵与opencv的内参数据互为转置关系