/// <summary> /// 获取横拍结果,如果有效就使用,无效则不使用 /// </summary> /// <param name="ratio"></param> /// <param name="dirPhoto"></param> /// <param name="dev"></param> /// <returns></returns> public static bool GetRealTimeDev(DirCstCamera_Enum dirPhoto, bool cstIsMirrorX, out double dev) { dev = 0; try { if (TryGetLeftDev(out double left) && TryGetRightDev(out double right)) { int dir = cstIsMirrorX ? -(int)dirPhoto : (int)dirPhoto; dev = dir * (left + right) / 2; return(true); } else { return(false); } }
/// <summary> /// 将龙骨单列偏差与卡塞单列偏差(卡塞1列由2列龙骨组成)加到一起,作为总偏差 /// </summary> /// <param name="cstCols">卡塞列数</param> /// <param name="cstRows">卡塞行数</param> /// <param name="keelDev_L">龙骨单列偏差列表</param> /// <param name="colDev_L">卡塞单列偏差</param> /// <returns></returns> public static List <List <double> > MixDeviation(int cstCols, int cstRows, List <List <double> > keelDev_L, List <double> colDev_L, DirCstCamera_Enum dirPhoto, bool cstIsMirrorX) { List <List <double> > mixDev_L = new List <List <double> >(); try { int dir = cstIsMirrorX ? -(int)dirPhoto : (int)dirPhoto; for (int i = 0; i < cstCols; ++i) { List <double> lst = new List <double>(); for (int j = 0; j < cstRows; ++j) { lst.Add(dir * ((keelDev_L[i][j] + keelDev_L[i + 1][j]) / 2.0 + colDev_L[i])); } mixDev_L.Add(lst); } } catch (Exception ex) { Log.L_I.WriteError(ClassName, ex); } return(mixDev_L); }