具体的这个文章讲的很清楚了
详细图解,一眼就能看懂!卷帘快门(详细图解,一眼就能看懂!卷帘快门(Rolling Shutter)与全局快门(Global Shutter)的区别_abcwoabcwo的博客-CSDN博客_global shutter详细图解,一眼就能看懂!卷帘快门(
写这个主要是记录在看卷帘相机补偿代码时候遇到的个小疑问,即里面用了迭代循环来补偿,一开始有点疑惑,作为随笔记录一下~
其实卷帘补偿(RS compensate)本质上和激光雷达的运动补偿是一个道理,都是每个点/行的采样时间不一致导致的,需要对这期间的运动进行补偿,都是运动补偿的一种。写个伪代码进行简单的分析
# input :
#3D点point_3d,线速度v,角速度w,卷帘曝光间隔时间rs_time
#output: 图像上2D点point_2d
将point_3d通过相机内外参矩阵投影到图像上,得到point_2d_temp;
while(iter < iter_max || R < 0.1){
将R * point_3d通过相机内外参矩阵投影到图像上,得到point_2d_temp;
根据point_2d_temp的行号进行运动补偿(v * rs_time + w * rs_time),得到补偿矩阵R;
iter++;
}
主要目的在于:一开始我们并不知道3D点对应的2D坐标(其实是RS compensate的图像行号),所以需要投影一次后才能知道在未补偿时的行号,然后由于补偿的缘故会导致行号改变,所以需要不断的循环补偿