private static Image DrawSonogram(BaseSonogram sonogram, double[,] hits, List <Plot> scores, List <Track> tracks) { Image_MultiTrack image = new Image_MultiTrack(sonogram.GetImage()); image.AddTrack(ImageTrack.GetTimeTrack(sonogram.Duration, sonogram.FramesPerSecond)); image.AddTrack(ImageTrack.GetSegmentationTrack(sonogram)); if (scores != null) { foreach (Plot plot in scores) { // assumes data normalized in 0,1 image.AddTrack(ImageTrack.GetNamedScoreTrack(plot.data, 0.0, 1.0, plot.threshold, plot.title)); } } if (tracks != null) { image.AddTracks(tracks, sonogram.FramesPerSecond, sonogram.FBinWidth); } if (hits != null) { image.OverlayRedMatrix(hits, 1.0); } return(image.GetImage()); }
/// <summary> /// draw the spectrogram with spectral tracks. /// </summary> public static Image DrawTracks(BaseSonogram sonogram, double[,] hits, List <SpectralTrack> tracks) { Image_MultiTrack image = new Image_MultiTrack(sonogram.GetImage()); image.AddTrack(ImageTrack.GetTimeTrack(sonogram.Duration, sonogram.FramesPerSecond)); image.AddTrack(ImageTrack.GetSegmentationTrack(sonogram)); if (tracks != null) { image.AddTracks(tracks, sonogram.FramesPerSecond, sonogram.FBinWidth); } if (hits != null) { image.OverlayRedMatrix(hits, 1.0); } return(image.GetImage()); }