From c9c1f20f9efa0511177474cfba9383803dfd7218 Mon Sep 17 00:00:00 2001 From: "Samuele E. Locatelli" Date: Tue, 16 Feb 2021 14:50:13 +0100 Subject: [PATCH] fix range reload + fix color reload --- ThermalImageStreamerDemo/MainForm.cs | 5 +++-- ThermoCamUtils/ImageData.cs | 30 +++++++++++++++++++++++----- 2 files changed, 28 insertions(+), 7 deletions(-) diff --git a/ThermalImageStreamerDemo/MainForm.cs b/ThermalImageStreamerDemo/MainForm.cs index e866830a..9676beb5 100644 --- a/ThermalImageStreamerDemo/MainForm.cs +++ b/ThermalImageStreamerDemo/MainForm.cs @@ -598,6 +598,7 @@ namespace ThermalImageStreamerDemo ImgData.Thermal = (ThermalImage)IRCam.ThermoCamera.GetImage(); ImgData.Thermal.TemperatureUnit = TemperatureUnit.Celsius; ImgData.Thermal.Scale.IsAutoAdjustEnabled = true; + ImgData.lastTempRange = new Range(ImgData.Thermal.Scale.Range.Minimum, ImgData.Thermal.Scale.Range.Maximum); // salvo img locale ImgData.Origin = ImgData.Thermal.Image; ImgData.Decorated = ImgData.Thermal.Image; @@ -777,8 +778,8 @@ namespace ThermalImageStreamerDemo try { // mostro minimo / massimo - lblMinTemp.Text = $"{ImgData.Thermal.Scale.Range.Minimum:N2}"; - lblMaxTemp.Text = $"{ImgData.Thermal.Scale.Range.Maximum:N2}"; + lblMinTemp.Text = $"{ImgData.lastTempRange.Minimum:N2}"; + lblMaxTemp.Text = $"{ImgData.lastTempRange.Maximum:N2}"; } catch { } diff --git a/ThermoCamUtils/ImageData.cs b/ThermoCamUtils/ImageData.cs index 9ba713b4..e28cea2d 100644 --- a/ThermoCamUtils/ImageData.cs +++ b/ThermoCamUtils/ImageData.cs @@ -44,11 +44,6 @@ namespace ThermoCamUtils /// protected TemperatureData lastFlirData = new TemperatureData(); - /// - /// Ultimo range di temperature osservato - /// - protected Range lastTempRange = new Range(0, 5000); - /// /// Stopwatch x benchmarking /// @@ -85,6 +80,11 @@ namespace ThermoCamUtils /// public double lastReadTemp = 0; + /// + /// Ultimo range di temperature osservato + /// + public Range lastTempRange = new Range(0, 5000); + #endregion Public Fields #region Public Constructors @@ -352,6 +352,8 @@ namespace ThermoCamUtils /// public bool fileLoad(string fileName) { + double minTemp = 5000; + double maxTemp = 0; bool answ = false; if (string.IsNullOrEmpty(fileName)) { @@ -386,11 +388,29 @@ namespace ThermoCamUtils Decorated = (Bitmap)loadedImg.Clone(); } + using (Image loadedImg = Image.FromFile(fileColorPath)) + { + ColorTransf = (Bitmap)loadedImg.Clone(); + } + // carico il file delle temperature string rawData = File.ReadAllText(fileDataPath); if (!string.IsNullOrEmpty(rawData)) { lastFlirData = JsonConvert.DeserializeObject(rawData); + // calcolo min/Max + foreach (var item in lastFlirData.Values) + { + if (item < minTemp) + { + minTemp = item; + } + if (item > maxTemp) + { + maxTemp = item; + } + } + lastTempRange = new Range(minTemp, maxTemp); } } catch (Exception exc)