public static void ShowAllSlices(this Matrix m) { for (int z = 0; z < m.DimensionZ; z++) { using (var mat = m.GetZPlaneBySlice(z)) { var sliceText = mat.EmptyClone(); sliceText.PutText($"{z}", new Point(m.DimensionX / 2, m.DimensionY - 5), HersheyFonts.Italic, 0.5, new Scalar(1)); var combined = new Mat(); Cv2.AddWeighted(mat, 1, sliceText, 0.5, 0, combined); FloatMat.Show(combined); combined.Dispose(); mat.Dispose(); sliceText.Dispose(); } } }
public static void RenderContourOnDose(Matrix dm, params SliceContourMeta[] contours) { var z = contours.Select(c => c.Z).First(); var slice = dm.GetZPlane(z); var color = FloatMat.ToSDFRender(slice); slice.Dispose(); foreach (var contour in contours) { if (contour.ContourPoints.Any()) { contour.DrawOnSlice(dm.PatientTransformMatrix, color); } } Cv2.ImShow("Dose Contour", color); Cv2.WaitKey(); }