-
2021-12-13 21:24:30
三、
#张大可修改 #调用各种库文件 import cv2 import glob import numpy as np #设置使用的棋盘规格,cbraw为列数,cbcol为行数 cbraw = 11 cbcol = 8 # prepare object points, like (0,0,0), (1,0,0), (2,0,0) ....,(6,5,0) #得到objp为cbraw*cbcol行,3列的0矩阵 objp = np.zeros((cbraw*cbcol,3), np.float32) ''' 设定世界坐标下点的坐标值,因为用的是棋盘可以直接按网格取; 假定棋盘正好在x-y平面上,这样z=0,简化初始化步骤。 mgrid把列向量[0:cbraw]复制了cbcol列,[0:cbcol]复制了cbraw行。 转置reshape后,每行都是8*11网格中的某个点的坐标。 ''' #得到objp[[ 0., 0., 0.],[ 6., 0., 0.],[ 12., 0., 0.]一共有cbraw*cbcol个,其中修改的是棋盘格的边长15 objp[:,:2] = np.mgrid[0:cbraw*15:15,0:cbcol*15:15].T.reshape(-1,2) #print('objp',objp) objpoints = [] # 3d point in real world space imgpoints = [] # 2d points in image plane. #glob是个文件名管理工具 images = glob.glob("E:\picture\last\liaoding2\*.bmp") for fname in images: #对每张图片,识别出角
更多相关内容 -
checkboard和april的棋盘格标定板PDF
2022-03-27 20:03:22棋盘格标定板.pdf april_6x6_80x80cm_A0.pdf -
棋盘格标定板.docx
2020-02-17 15:33:34棋盘格标定板,黑白,20 mm 8*8 ,用于相机标定部分,可直接打印使用,相机标定部分可参见张正友标定算法。 -
9×9棋盘格标定板GC300-9×9.pdf
2020-08-19 09:53:149×9棋盘格标定板GC300-9×9,适用A3纸可直接打印。可用于相机的标定,图案尺寸270mm*270mm -
棋盘格标定板
2019-03-15 21:24:16棋盘格标定板,是PDF文件,可以提供给OpenCV的初学者学习相机标定时打印使用 -
棋盘格标定pdf直接打印visionpro
2022-04-20 14:20:24棋盘格标定pdf直接打印visionpro -
机器视觉棋盘格标定板 CAD格式
2018-09-04 17:08:16在做相机标定的时候需要打印标定板,网上有卖的,但也没那必要,自己打印的完全可以胜任,如果打印精度差的话...机器视觉标定板 棋盘格 CAD格式 可以直接打印 机器视觉标定板 棋盘格 CAD格式 可以直接打印 非常清晰 -
棋盘格标定图纸400X400-格子0.2.dwg
2021-07-15 10:27:05带二维码棋盘格标定片0.2mm,适用于康耐视VisionPro标定校准。 -
棋盘格 标定板制作Opencv程序
2013-12-31 16:02:41自己写的棋盘格程序,制作标准的棋盘格!用画图软件画可能画的不标准,所以想到写一个Opencv程序 -
摄像头标定_黑白棋盘格标定板图20张.zip
2021-10-07 12:45:12适合单目摄像头标定,黑白棋盘格标定板图 -
方便快捷A4纸大小棋盘格标定纸
2020-12-02 21:49:15A4纸大小的棋盘格标定板,即打即用,随时随地标定相机内参(看网络上搜了半天搜不到,只好用Kalibr画了一个,免费下载造福大家,好人有好报~) -
棋盘格标定图25张~
2021-01-15 17:41:13棋盘格标定图25张~ -
棋盘格标定板和圆形标定板,7*9和11*9.zip
2021-09-16 19:07:39适合三维测量,机器视觉定位,相机标定、系统标定 含棋盘格标定板和圆形标定板,7*9和11*9均有 -
棋盘格标定板及绘制代码
2019-03-11 22:42:38这是一个棋盘格标定板,主要拿来进行相机标定用的,另附赠制作棋盘格的代码,自己修改几个参数便可以绘制自己想要的棋盘标定板另。 -
利用Python-OpenCV及PS制作棋盘格标定板
2022-02-09 15:54:07# 定义棋盘格的尺寸 size = 140 # 定义标定板尺寸 boardx = size * 10 boardy = size * 7 canvas = np.zeros((boardy, boardx, 1), np.uint8) # 创建画布 for i in range(0, boardx): for j in range(0, boardy): ...Python代码
import cv2 import numpy as np # 定义棋盘格的尺寸 size = 140 # 定义标定板尺寸 boardx = size * 10 boardy = size * 7 canvas = np.zeros((boardy, boardx, 1), np.uint8) # 创建画布 for i in range(0, boardx): for j in range(0, boardy): if (int(i/size) + int(j/size)) % 2 != 0: # 判定是否为奇数格 canvas[j, i] = 255 cv2.imwrite("E:/studying/chessboard.png", canvas)
样图
以上述为例,导出后像素分辨率为1400*980,为得到固定尺寸(cm)的图像,我们再将其导入PhotoShop加工。
菜单栏中选择:图像——图像大小,勾选约束比例及缩放样式,再调节宽度或高度。
例如设置宽度为20,则实际每个棋盘格的边长大小为2cm。 -
勇哥的视觉实验:棋盘格标定板标定
2021-04-18 04:53:00勇哥手里这块标定板的参数如下:(一)使用GML Camera Calibration进行标定新建任务后,发现这个软件不让行列数量相同。必须行列一个为奇数一个就为偶数。由于勇哥手里的标定板就是9*9,无耐,只能参数改为9*8了。方...勇哥手里这块标定板的参数如下:
(一)使用GML Camera Calibration进行标定
新建任务后,发现这个软件不让行列数量相同。
必须行列一个为奇数一个就为偶数。
由于勇哥手里的标定板就是9*9,无耐,只能参数改为9*8了。
方格子长宽则为2mm。
点击检测所有图片
发现要么是检测长时间结束不了,要么是图片列表文字变红。
这个表示检测失败,无法继续执行标定。
看来可能是9*9的被当成9*8来处理是不行的。
为了能继续实验,勇哥用激光打印机打印了9*8 大小4mm的旗盘格标定板。
在相机视野范围内摆了四组姿式。(软件要求最少3幅图像)
导入图片后:
检测所有。
检测完毕后的效果如下:
但是不知道为什么,这个过程勇哥花了一个小时才完成。
勇哥的电脑是台服务器,速度并不慢哦。
然后点击
标定,结果如下:
square size 方块尺寸
focal length 焦距
principal point 主要点(可能是中心点吧?)
distortion 畸变?
the camera matrix 摄像机矩阵,使用这个结果,已经可以直接用来计算世界坐标了。
pixel error 像素误差
这个结果中,似乎没看到相机的外参。
Reproject的结果,不知道是干什么的。
Point Density的结果,也不知道有啥用?
请待继续。。。。。。
---------------------
作者:hackpig
来源:www.skcircle.com
版权声明:本文为博主原创文章,转载请附上博文链接!
#转载请注明出处 www.skcircle.com 《少有人走的路》勇哥的工业自动化技术网站。如果需要本贴图片源码等资源,请向勇哥索取。
收藏 | 0点赞 | 0打赏作者
-
2010-08-25OpenCV棋盘格标定板图片
2019-01-10 17:53:47机器视觉OpenCV标定过程中使用的标定板图片2010-08-25 -
棋盘格标定板图像(可用于张氏标定法)
2022-02-14 10:42:49可以直接用于进行相机的内外参标定 -
基于棋盘格标定板的相机外参求解(标定板到相机坐标系转换矩阵)
2021-12-13 22:07:23三、 #张大可 #只需要输入畸变系数和内参矩阵、行列角点个数、边长 import cv2 import glob import numpy as np import pandas as pd from pylab import * import matplotlib.pyplot as plt ...from mpl_toolkits....三、
#张大可 #只需要输入畸变系数和内参矩阵、行列角点个数、边长 #注意这个过程已经去畸变了,所以不需要用去畸变后的图片 import cv2 import glob import numpy as np import pandas as pd from pylab import * import matplotlib.pyplot as plt import sympy import math from mpl_toolkits.mplot3d import Axes3D #输入畸变系数与内参矩阵 dist = array([[-9.43780303e-02,1.05179304e-01,6.25773506e-04,8.35001173e-05,3.07365802e-01]]) mtx = array([[2.38967981e+03,0.00000000e+00,1.23127363e+03],[0.00000000e+00,2.38915017e+03,1.03162429e+03],[0.00000000e+00,0.00000000e+00,1.00000000e+00]]) print(mtx) #建立方框 def draw(img, corners, imgpts): corner = tuple(corners[0].ravel()) img = cv2.line(img, corner, tuple(imgpts[0].ravel()), (255, 0, 0), 5) img = cv2.line(img, corner, tuple(imgpts[1].ravel()), (0, 255, 0), 5) img = cv2.line(img, corner, tuple(imgpts[2].ravel()), (0, 0, 255), 5) return img x_nums = 11 # x方向上的角点个数 y_n
-
制作棋盘格标定板(固定分辨率解决尺度问题)
2019-06-12 10:44:19} int main(){ //自定义标定板 int blockSize_mm = 60; // block边长,单位:mm int blockNum = 1; // 行 int blockNum_col = 1; // 列 int resolution_ratio = 10; int blockSize_pixel = blockSize_mm * ... -
opencv制作棋盘格标定板
2019-08-23 15:36:48opencv制作棋盘格标定板 -
Opencv 棋盘格标定板规格选型
2018-12-22 14:16:38Opencv 棋盘格标定板 产品特性: 标定板 (Calibration Target) 在机器视觉、图像测量、摄影测量、三维重建等应用中,为校正镜头畸变;确定物理尺寸和像素间的换算关系;以及确定空间物体表面某点的三维几何... -
MATLAB直接输出棋盘格标定板
2019-02-11 16:21:26%生成棋盘格 %by hunter %qq 257079476 %V1.0,2019-2-11 clear; clc; close all; format short g n = 200/25300; t=20/25300;%1英寸=25.4mm,由于n必须是整数,所以这里25.4改为25估算,实际打印效果会稍微... -
2010-11-05-OpenCV棋盘格标定板图片
2019-01-10 17:56:33OpenCV标定过程中使用的棋盘格标定板图片2010-11-05, -
棋盘格标定板制作
2018-03-01 10:08:37https://www.cnblogs.com/zhanxiage1994/p/6673164.html -
相机标定棋盘格图片下载(可直接打印使用)
2019-10-29 19:00:43opencv:26mm matlab:15mm;(包含两张图片);可直接打印使用 opencv:26mm matlab:15mm;(包含两张图片);可直接打印使用 -
2009-11-28-OpenCV棋盘格标定板图片
2019-01-10 17:50:47机器视觉OpenCV标定过程中使用的标定板图片2009-11-28