我想要计算一张粘贴在面板上的纸张的真实尺寸,我已知道面板的尺寸。以下是一个小例子:。
当图片正对着面板时,我的程序可以很好地工作,我得到了0.416 * 0.294的结果,而我的纸张的真实尺寸是0.420 * 0.297,这非常令人满意。您可以在此处尝试我的代码。 下面是我用于计算的函数。
现在我正在尝试做完全相同的事情,但当图片不是在面板前拍摄时,就像这样:。 您可以使用此图像此处尝试相同的代码。
对于这张图片,我的板材尺寸为0.405*0.254,这还不错,但并不够精确。我想要更准确的结果,但我不知道该如何做到,我认为我可能需要考虑更多参数,但我对摄影不是很了解,所以有些迷茫。
任何帮助都将不胜感激:)
编辑:由于没有答案,并且我在Google上没有找到成功的答案,我开始觉得我没有足够的数据来进行这样的计算。那现在如果:
- 我有焦距和传感器尺寸 - 我有相机和点1,2和3之间的距离 - 我两者都有
您能否帮忙呢?
当图片正对着面板时,我的程序可以很好地工作,我得到了0.416 * 0.294的结果,而我的纸张的真实尺寸是0.420 * 0.297,这非常令人满意。您可以在此处尝试我的代码。 下面是我用于计算的函数。
window.calculer = function(){
//-------------Calcul de X ---------------------------------------------------------------------------
ag_distance_x_metres=0.9;
ag_delta_x=x2-x1; // Calcul des ag_delta_x et ag_delta_y
ag_delta_y=y2-y1;
ag_distance_x_pixels=Math.sqrt(Math.pow(ag_delta_x, 2) + Math.pow(ag_delta_y, 2)); // Calcul de la distance x en pixels
ag_rapport_x = ag_distance_x_pixels/ag_distance_x_metres; // Calcul du rapport taille pixel / taille mètres
ag_delta_X = x5-x4; // Calcul des ag_delta_X et ag_delta_Y
ag_delta_Y = y5-y4;
ag_distance_X_pixels=Math.sqrt(Math.pow(ag_delta_X, 2) + Math.pow(ag_delta_Y, 2)); // Calcul de la distance X en pixels
ag_distance_X_metres=ag_distance_X_pixels/ag_rapport_x; // Calcul de la distance X en mètres
alert("ag_distance_X_metres = "+ ag_distance_X_metres);
//-------------Calcul de Y -----------------------------------------------------------------------------
ag_distance_y_metres=1.20;
ag_delta_x=x3-x2; // Calcul des ag_delta_x et ag_delta_y
ag_delta_y=y3-y2;
ag_distance_y_pixels=Math.sqrt(Math.pow(ag_delta_x, 2) + Math.pow(ag_delta_y, 2)); // Calcul de la distance y en pixels
ag_rapport_y = ag_distance_y_pixels/ag_distance_y_metres; // Calcul du rapport taille pixel / taille mètres
ag_delta_X = x6-x5; // Calcul des ag_delta_X et ag_delta_Y
ag_delta_Y = y6-y5;
ag_distance_Y_pixels=Math.sqrt(Math.pow(ag_delta_X, 2) + Math.pow(ag_delta_Y, 2)); // Calcul de la distance Y en pixels
ag_distance_Y_metres=ag_distance_Y_pixels/ag_rapport_y; // Calcul de la distance Y en mètres
alert("ag_distance_Y_metres = "+ ag_distance_Y_metres);
}
现在我正在尝试做完全相同的事情,但当图片不是在面板前拍摄时,就像这样:。 您可以使用此图像此处尝试相同的代码。
对于这张图片,我的板材尺寸为0.405*0.254,这还不错,但并不够精确。我想要更准确的结果,但我不知道该如何做到,我认为我可能需要考虑更多参数,但我对摄影不是很了解,所以有些迷茫。
任何帮助都将不胜感激:)
编辑:由于没有答案,并且我在Google上没有找到成功的答案,我开始觉得我没有足够的数据来进行这样的计算。那现在如果:
- 我有焦距和传感器尺寸 - 我有相机和点1,2和3之间的距离 - 我两者都有
您能否帮忙呢?