相机标定外参怎么得出,摄像头内外参标定的参数,相机的内外参数标定

  相机标定外参怎么得出,摄像头内外参标定的参数,相机的内外参数标定

  单目相机内参标定(python)标定原理网上一大堆,就不在这赘述了,直接上代码。

  将cv2导入数字作为npimport glob#导入找棋盘格角点标定并且写入文件# 设置寻找亚像素角点的参数,采用的停止准则是最大循环次数30和最大误差容限0.001标准=(cv2 .TERM_CRITERIA_EPS cv2ITER,30,0.001) #阈值# 棋盘格模板规格w=8 # 9 - 1h=6 # 7 - 1#世界坐标系中的棋盘格点,例如(0,0,0), (1,0,0), (2,0,0) .(8,5,0),去掉Z坐标,记为二维矩阵objp=np.zeros((w*h,3),np.float32)objp[:2]=np.mgrid[0:w,0:h]。t形(-1,2)objp=objp * 21 #棋盘方块边长21毫米#储存棋盘格角点的世界坐标和图像坐标对objpoints=[] #在世界坐标系中的三维点imgpoints=[] #在图像平面的二维点图像=全球。glob( E:/code/1 _ 21mm _ 2/* .jpg) #拍摄的十几张棋盘图片所在目录对于图像中的fname,I=1:img=cv2。im read(fname)#获取画面中心点h1,w1=img.shape[0],img。shape[1]gray=cv2。CVT颜色(img,cv2 .COLOR_BGR2GRAY) u,v=img.shape[:2] print(u,v) #找到棋盘格角点ret,拐角=cv2。findchesboardcorners(灰色,(宽,高),无)#如果找到足够点对,将其存储起来如果ret==True: print(i:,i) i=i 1 #对检测到的角点作进一步的优化计算,可使角点的精度达到亚像素级别cv2.cornerSubPix(灰色,拐角,(11,11),(-1,-1),criteria)obj点。附加(objp)img点。追加(拐角)#将角点在图像上显示cv2。drawchesboardCorners(img,(w,h),Corners,ret)cv2。命名窗口(“查找角落”),cv2 .窗口_正常)cv2。调整窗口大小( find corners ,640,480) cv2.imshow(findCorners ,img)cv2。等待键(200)cv2。destroyallwindows()#标定打印(正在计算)ret,mtx,dist,rvecs,tvecs=\ cv2。校准相机(obj points,imgpoints,gray.shape[:-1],None,None)cv_file=cv2 .文件存储( E:/code/1 _ 21mm _ 2/camera。YAML,cv2 .文件存储写入)cv文件。WRITE( camera _ matrix ,mtx)cv_file.write(dist_coeff ,dist)#请注意,*释放*不会关闭()文件存储对象cv_file.release()print(ret:,ret)print(mtx:\n ,mtx) #内参数矩阵打印(距离畸变值:\n ,dist) #畸变系数失真系数=(k1,k2,P1,p2,k3)旋转(向量)外参:\n ,rvecs) #旋转向量# 外参数打印( tvecs平移(向量)外参:\n ,tvecs) #平移向量# 外参数newcameramtx,ROI=cv2。getoptimalnewcameramatrix(MTX区,(u,v),0,(u,v))print(newcameramtx外参,newcameramtx)相机=cv2 .视频捕获(0)而True:(gracked,frame)=camera.read() h1,w1=frame.shape[:2] #打开标定文件cv_file=cv2 .文件存储( E:/code/1 _ 21mm _ 2/camera。YAML,cv2 .文件_存储_读取)相机_矩阵=cv _文件。getnode( camera _ matrix ).mat()dist _ matrix=cv _ file。获取节点( dist _ coeff ).mat()cv _ file。release()newcameramtx,ROI=cv2。getoptimalnewcameramatrix(camera _ matrix,dist_matrix,(u,v),0,(u,v)) #纠正畸变dst 1=cv2。不失真(frame,camera_matrix,dist_matrix,None,newcameramtx) mapx,mapy=cv2。initundistortrectifymap(camera _ matrix,dist_matrix,None,newcameramtx,(w1,h1),5) dst2=cv2.remap(frame,mapx,mapy,cv2 .INTER_LINEAR) #裁剪图像,输出纠正畸变以后的图片x,y,w1,h1=roi dst1=dst1[y:y h1,x:x w1] cv2.imshow(dst1 ,dst 1)if cv2。等待键(1)0x ff==ord( q ):#按q保存一张图片cv2。im写( E:/code/1 _ 21mm _ 2/frame。jpg ,dst 1)破相机。释放()cv2。destroyallwindows()相机标定的棋盘生成程序见:https://博客。csdn。net/QQ _ 42598221/文章/详情/119212743

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

相关文章阅读

  • win10有录像功能吗,win10录屏打开摄像头
  • c#虚拟摄像头,C#摄像头
  • c#虚拟摄像头,C#摄像头,C# 利用AForge实现摄像头信息采集
  • ,,JavaScript 如何在浏览器中使用摄像头
  • iPhone12promax摄像头介绍,iPhone14摄像头
  • 双摄像头测距离原理,测距摄像头的测距原理怎么设置,单目摄像头测距原理
  • 雨课堂期末考试有摄像头吗,雨课堂考试怎么开摄像头吗
  • 腾讯会议能否看到学生屏幕,腾讯课堂学生开摄像头其他同学能看见吗
  • 笔记本win10怎么打开摄像头拍照,win10摄像头怎么拍照
  • 树莓派控制摄像头拍照,树莓派连接摄像头教程
  • 树莓派摄像头实时监控,树莓派实现目标检测
  • 摄像头移动检测算法软件,摄像头移动检测算法有哪些
  • 笔记本摄像头倒置怎么解决,笔记本摄像头倒着是怎么回事
  • 单目摄像头像测距,双目摄像机测量距离准确吗,双目摄像头测距范围
  • opencv连接网络摄像头,opencv调用摄像头采集图像
  • 留言与评论(共有 条评论)
       
    验证码: