//--------------------------------------------------------------------------------------------- public InterferogramDecodingResult DecodeInterferogram( BitMask2D bitMask, params RealMatrix[] interferograms ) { //Выбранные точки изображения Point[] selectedImagePoints = bitMask.GetTruePoints(); //3D точки в плоскости, параллельной плоскости XY Point3D[] points3D = this.GetParallelToCoordinatePlanePoints3D(interferograms, selectedImagePoints); Point2D[] points2D = SpaceManager.GetProjectionXY(points3D); this.ProjectionPoints = points2D; points2D = PlaneManager.DisplacePointsToFirstQuadrant(points2D); Point2D[] transformedPoints = this.GetTransformedPoints(points2D); int sizeX = interferograms[0].ColumnCount; int sizeY = interferograms[0].RowCount; RealMatrix phaseMatrix = this.CalculatePhaseMatrix(transformedPoints, selectedImagePoints, sizeX, sizeY); InterferogramDecodingResult decodingResult = new InterferogramDecodingResult(phaseMatrix); return(decodingResult); }