Image processing 摄像机标定与图像处理
我想请你澄清一下这些问题 1.如果我将相机校准到特定分辨率(例如640x360),我可以将其用于其他分辨率(如1024x768)吗 2.我还想知道一个像素在我的图像中包含多少厘米。它因系统而异,我如何找到它?。此外,它的形状也不是强制性的正方形。所以我必须找到它的长度和宽度。我该怎么做Image processing 摄像机标定与图像处理,image-processing,camera,camera-calibration,Image Processing,Camera,Camera Calibration,我想请你澄清一下这些问题 1.如果我将相机校准到特定分辨率(例如640x360),我可以将其用于其他分辨率(如1024x768)吗 2.我还想知道一个像素在我的图像中包含多少厘米。它因系统而异,我如何找到它?。此外,它的形状也不是强制性的正方形。所以我必须找到它的长度和宽度。我该怎么做 我使用的是罗技c170,这是一个低速凸轮。当我试图测量图像中的距离并将其与实时距离进行比较时,是否可以得到8毫米左右的误差 EDIT1: 由于1毫米内的像素数是传感器宽度/图像宽度,这是密度的倒数,我可以计算a_
@马洛尔
Intrinsic parameters of left camera:
Focal Length: fc_left = [ 1442.67707 1457.17435 ] ± [ 18.12442 19.46439 ]
Principal point: cc_left = [ 497.66112 291.77311 ] ± [ 42.37874 31.97065 ]
Skew: alpha_c_left = [ 0.00000 ] ± [ 0.00000 ] => angle of pixel axes = 90.00000 ± 0.00000 degrees
Distortion: kc_left = [ 0.02924 -0.65151 -0.01104 -0.01342 0.00000 ] ± [ 0.16553 1.57119 0.00913 0.01306 0.00000 ]
Intrinsic parameters of right camera:
Focal Length: fc_right = [ 1443.32678 1458.82558 ] ± [ 25.55850 26.08659 ]
Principal point: cc_right = [ 567.11672 258.09152 ] ± [ 20.46962 17.87495 ]
Skew: alpha_c_right = [ 0.00000 ] ± [ 0.00000 ] => angle of pixel axes = 90.00000 ± 0.00000 degrees
Distortion: kc_right = [ -0.58576 21.53289 -0.02278 0.00845 0.00000 ] ± [ 0.28148 9.37092 0.00787 0.00847 0.00000 ]
Extrinsic parameters (position of right camera wrt left camera):
Rotation vector: om = [ -0.04239 0.02401 -0.00677 ]
Translation vector: T = [ 71.66430 -0.79025 -8.76546 ]
K = [a_x, 0, 320;
0, a_y, 180;
0, 0, 1]
是的,你可以看到c_x=320=640/2和c_y=180=360/2。因此,校准矩阵与图像分辨率相关,因此在不更改矩阵K的情况下,无法将其直接用于任何其他分辨率
2.必须将传感器尺寸除以图像尺寸,即
图像传感器是由感光材料制成的微小平面,它可以吸收相机设备中的光线。通常,您可以在相机手册中找到此类信息,搜索传感器尺寸
编辑:如果您在相机手册中找不到传感器尺寸,网络摄像机的正常行为是什么,您可以尝试执行以下操作:校准给定矩阵K的相机。值a_x和a_y包含此类信息。因为我们说的是a_x=f*密度,所以如果你知道焦距(你知道-它是2.3mm-请看),那么你可以找到密度=a_x/f。我们知道密度等于图像宽度/传感器宽度,所以最后我们得到了传感器宽度=图像宽度/密度=图像宽度*f/a\x。传感器的高度也有类似的想法
EDIT2:例如,如果您得到:
Focal Length: fc_left = [ 1442.67707 1457.17435 ] ± [ 18.12442 19.46439 ]
我们有a_x=1442.67707。根据我们的结论,如果我们假设图像大小为640 x 320,则传感器宽度=640*2.3/1442.67707=1,02 mm 这个问题似乎离题了,因为它是关于图像处理,而不是编程。我以为这个网站不仅仅是关于编程的。此外,我需要在我的程序中使用上述数据,因此了解这些数据的人可以帮助我解决这个问题。你可能会得到更好的答案,这是关于DSP和图像处理的问题。StackOverflow更适用于特定的编程问题,一般来说,它涉及实际代码。哦!我很抱歉。我不知道!谢谢…没问题-祝你快乐!这真的很有帮助!谢谢!!但是我找不到罗技c170网络摄像头的传感器尺寸。嘿!!谢谢…但这里我有一个有趣的立体视觉。我有两个校准矩阵,我应该用哪一个?下面是我对左右两侧相机的校准结果。我举了一个例子来澄清一个问题。我明白了!解释得很好。我一直在寻找不同来源的答案,你的答案真的很棒!谢谢。你们有图像处理的教程吗?我是这里的初学者,想了解更多。
k_x = 1 / c_x = sensor_size_width / image_size_width.
k_y = 1 / c_y
Focal Length: fc_left = [ 1442.67707 1457.17435 ] ± [ 18.12442 19.46439 ]