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()); }
}//end DetectGratingEvents() static Image DrawSonogram(BaseSonogram sonogram, double[,] hits, double[] scores, List <AcousticEvent> predictedEvents, double eventThreshold) { //Log.WriteLine("# Start to draw image of sonogram."); bool doHighlightSubband = false; bool add1kHzLines = true; double maxScore = 32.0; //assume max period = 64. Image_MultiTrack image = new Image_MultiTrack(sonogram.GetImage(doHighlightSubband, add1kHzLines)); //System.Drawing.Image img = sonogram.GetImage(doHighlightSubband, add1kHzLines); //img.Save(@"C:\SensorNetworks\temp\testimage1.png", System.Drawing.Imaging.ImageFormat.Png); //Image_MultiTrack image = new Image_MultiTrack(img); image.AddTrack(ImageTrack.GetTimeTrack(sonogram.Duration, sonogram.FramesPerSecond)); image.AddTrack(ImageTrack.GetSegmentationTrack(sonogram)); if (scores != null) { image.AddTrack(ImageTrack.GetScoreTrack(scores, 0.0, 1.0, eventThreshold)); } if (hits != null) { image.OverlayRedMatrix(hits, maxScore); } if (predictedEvents.Count > 0) { image.AddEvents(predictedEvents, sonogram.NyquistFrequency, sonogram.Configuration.FreqBinCount, sonogram.FramesPerSecond); } return(image.GetImage()); } //DrawSonogram()
} // CreateScorePlots() static Image DrawSonogram(BaseSonogram sonogram, double[,] hits, List <Plot> plots, List <AcousticEvent> predictedEvents) { bool doHighlightSubband = false; bool add1kHzLines = false; Image_MultiTrack image = new Image_MultiTrack(sonogram.GetImage(doHighlightSubband, add1kHzLines)); //System.Drawing.Image img = sonogram.GetImage(doHighlightSubband, add1kHzLines); //img.Save(@"C:\SensorNetworks\temp\testimage1.png", System.Drawing.Imaging.ImageFormat.Png); //Image_MultiTrack image = new Image_MultiTrack(img); image.AddTrack(ImageTrack.GetTimeTrack(sonogram.Duration, sonogram.FramesPerSecond)); image.AddTrack(ImageTrack.GetSegmentationTrack(sonogram)); if (plots != null) { foreach (Plot plot in plots) { image.AddTrack(ImageTrack.GetNamedScoreTrack(plot.data, 0.0, 1.0, plot.threshold, plot.title)); } } //if (hits != null) image.OverlayRedTransparency(hits); if (hits != null) { image.OverlayRedMatrix(hits, 1.0); } if (predictedEvents.Count > 0) { image.AddEvents(predictedEvents, sonogram.NyquistFrequency, sonogram.Configuration.FreqBinCount, sonogram.FramesPerSecond); } return(image.GetImage()); } //DrawSonogram()
/// <summary> /// draw the spectrogram with red marks indicating the local spectral peaks. /// </summary> public static Image DrawSonogram(BaseSonogram sonogram, double[,] hits) { Image_MultiTrack image = new Image_MultiTrack(sonogram.GetImage()); image.AddTrack(ImageTrack.GetTimeTrack(sonogram.Duration, sonogram.FramesPerSecond)); image.AddTrack(ImageTrack.GetSegmentationTrack(sonogram)); 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()); }