Ejemplo n.º 1
0
 /// <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);
         }
     }
Ejemplo n.º 2
0
        /// <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);
        }