python棋盘格画图代码_使用OpenCV进行姿态估计的绘图棋盘格参考系(solvePnP + projectPoints)...
发布日期:2022-02-04 03:25:47 浏览次数:6 分类:技术文章

本文共 2943 字,大约阅读时间需要 9 分钟。

importcv2ascvimportnumpyasnpimportglobimportargparse# algorithm parametersCHECKERBOARD_WIDTH=9CHECKERBOARD_HEIGHT=6# termination criteriacriteria=(cv.TERM_CRITERIA_EPS+cv.TERM_CRITERIA_MAX_ITER,30,0.001)#=== CALIBRATE CAMERA ============================================================================#Prepare object pointsobjp=np.zeros((CHECKERBOARD_HEIGHT*CHECKERBOARD_WIDTH,3),np.float32)objp[:,:2]=np.mgrid[0:CHECKERBOARD_HEIGHT,0:CHECKERBOARD_WIDTH].T.reshape(-1,2)# Arrays to store object points and image points from all the images.objpoints=[]# 3d point in real world spaceimgpoints=[]# 2d points in image plane.# Load the imagesap=argparse.ArgumentParser()ap.add_argument('-f','--folder',required=True,help='Path to the images folder with last slash')ap.add_argument('-e','--ext',required=True,help='Extension of image files without the dot')args=vars(ap.parse_args())images=glob.glob(args['folder']+'*.'+args['ext'])#Process the imagesforfnameinimages:print('Calibrating on '+fname)img=cv.imread(fname)gray=cv.cvtColor(img,cv.COLOR_BGR2GRAY)# Find the chess board cornersret,corners=cv.findChessboardCorners(gray,(CHECKERBOARD_WIDTH,CHECKERBOARD_HEIGHT),None)# If found, add object points, image points (after refining them)ifret==True:print('Found corners')objpoints.append(objp)corners2=cv.cornerSubPix(gray,corners,(11,11),(-1,-1),criteria)imgpoints.append(corners)# Draw and display the corners as feedback to the usercv.drawChessboardCorners(img,(CHECKERBOARD_WIDTH,CHECKERBOARD_HEIGHT),corners2,ret)cv.imshow('Calibration',img)k=cv.waitKey(0)&0xFFifk==ord('s'):cv.imwrite(fname+'_calib.png',img)cv.destroyAllWindows()#Obtain camera parametersret,mtx,dist,rvecs,tvecs=cv.calibrateCamera(objpoints,imgpoints,gray.shape[::-1],None,None)#=== FIND POSE OF TARGETS ===========================================================================#Prepare object pointsobjp=np.zeros((CHECKERBOARD_HEIGHT*CHECKERBOARD_WIDTH,3),np.float32)objp[:,:2]=np.mgrid[0:CHECKERBOARD_HEIGHT,0:CHECKERBOARD_WIDTH].T.reshape(-1,2)axis=np.float32([[3,0,0],[0,3,0],[0,0,-3]]).reshape(-1,3)#Displaydefdraw(img,corners,imgpts):corner=tuple(corners[0].ravel())img=cv.line(img,corner,tuple(imgpts[0].ravel()),(255,0,0),5)img=cv.line(img,corner,tuple(imgpts[1].ravel()),(0,255,0),5)img=cv.line(img,corner,tuple(imgpts[2].ravel()),(0,0,255),5)returnimgforfnameinimages:print('Processing '+fname)img=cv.imread(fname)gray=cv.cvtColor(img,cv.COLOR_BGR2GRAY)ret,corners=cv.findChessboardCorners(gray,(CHECKERBOARD_WIDTH,CHECKERBOARD_HEIGHT),None)ifret==True:print('Found corners')corners2=cv.cornerSubPix(gray,corners,(11,11),(-1,-1),criteria)# Find the rotation and translation vectors.ret,rvecs,tvecs=cv.solvePnP(objp,corners2,mtx,dist)# project 3D points to image planeimgpts,jac=cv.projectPoints(axis,rvecs,tvecs,mtx,dist)img=draw(img,corners2,imgpts)cv.imshow('img',img)k=cv.waitKey(0)&0xFFifk==ord('s'):cv.imwrite(fname+'_output.png',img)cv.destroyAllWindows()

转载地址:https://blog.csdn.net/weixin_39626369/article/details/110998019 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:树莓派实验室python人脸识别_开源 人脸识别 openface 实用介绍 实例演示 训练自己的模型...
下一篇:debian编译安装python_Debian8 安装Python 3.6

发表评论

最新留言

逛到本站,mark一下
[***.202.152.39]2023年09月02日 22时25分07秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章

李宏毅2020ML——P63 ELMO、BERT、GPT 2019-03-07
28000个比特币丢失背后的罗生门 2019-03-07
玲听丨微众银行区块链开源观察:把代码丢出去,把信任拿回来 2019-03-07
所有不看好比特币的人,最终都逃不过“真香”理论 2019-03-07
95%的加密货币玩家都在赔钱?6个惊人数据告诉你真实原因 2019-03-07
圈外人眼中的比特币:“我遇到的骗局多了,不差比特币这一个” 2019-03-07
区块链行业人员分布大调查:42%的从业者是交易所员工 2019-03-07
莱特币,全线矿机逼近关机价……比特币机皇S9也“很难” 2019-03-07
拨乱反正:区块链行业是如何被“炒币”妖魔化的? 2019-03-07
谷歌的“量子霸权”会冲击加密世界吗? 2019-03-07
江卓尔:比特币涨到十万美元需要多少资金? 2019-03-07
区块链应用的5大方向,哪些公司正在做? 2019-03-07
70% ETH持有者亏损,回本之路漫漫,你还会坚持看多吗? 2019-03-07
央行数字货币DCEP和支付宝、微信、比特币有什么不同? 2019-03-07
工行内测数字钱包背后: 中国引领货币潮流3000年 2019-03-07
BCH的“定时炸弹”?“BCH减半”对于其来说是一场灾难 2019-03-07
长期不能落地的区块链突破口在这里 2019-03-07
嘉楠往事:浮沉八载,如今剑指美股 2019-03-07
度宇宙、网易星球、爱得钻……这些大的区块链项目能否借机重生? 2019-03-07
过去两三年 互联网科技公司的掌舵人这样看区块链 2019-03-07