diff --git a/TIASshot/CameraBase.cs b/TIASshot/CameraBase.cs index cfbd286..fc004cf 100644 --- a/TIASshot/CameraBase.cs +++ b/TIASshot/CameraBase.cs @@ -34,6 +34,7 @@ protected bool _isPreview = false; protected List _chartMasks = new List(); protected Mat _convRGB2SRGB; + protected string _saveFolder = ""; // プライベートメンバ readonly Dictionary ARDict = CvAruco.GetPredefinedDictionary(PredefinedDictionaryName.Dict4X4_50); @@ -49,7 +50,6 @@ int _detectionCount = 0; Point2f _lastPosition = new Point2f(0, 0); Mat _tccRois; // TCCのROI検出結果画像 - string _saveFolder = ""; /// diff --git a/TIASshot/Form1.cs b/TIASshot/Form1.cs index 50c4411..c041be9 100644 --- a/TIASshot/Form1.cs +++ b/TIASshot/Form1.cs @@ -17,9 +17,8 @@ namespace TIASshot { public partial class Form1 : Form { - public static string APP_NAME = "TIAS Shot"; - //private Lucam _lucam; private CameraBase _camera; + public static string APP_NAME = "TIAS Shot"; private LightSource _light = new LightSource(); private bool _isLightOn = true; diff --git a/TIASshot/IScam.cs b/TIASshot/IScam.cs index b1172ee..14429ae 100644 --- a/TIASshot/IScam.cs +++ b/TIASshot/IScam.cs @@ -10,6 +10,7 @@ using System.Diagnostics; using System.Drawing; using System.Threading; +using System.IO; namespace TIASshot { internal class IScam : CameraBase { @@ -41,15 +42,15 @@ public override bool Connect() { if (!BootCheck()) return false; - //if (!_ic.LoadShowSaveDeviceState("lastSelectedDeviceState.xml")) { - // return false; - //} - //_ic.SaveDeviceStateToFile("DBK33UX178.xml"); _ic.LoadDeviceStateFromFile($"{DeviceName}.xml", true); if (!_ic.DeviceValid) { ErrorMsg = "IScamの設定ファイルが見つかりません"; return false; } + //if (!_ic.LoadShowSaveDeviceState("lastSelectedDeviceState.xml")) { + // return false; + //} + //_ic.SaveDeviceStateToFile("DBK33UX178.xml"); _queueSink = new FrameQueueSink(Retrieve, MediaSubtypes.RGB24, 5); _snapSink = new FrameSnapSink(MediaSubtypes.RGB24); @@ -143,17 +144,25 @@ var snapSink = _ic.Sink as FrameSnapSink; - for (int i = 0; i < numImages; i++) { - var buffer = snapSink.SnapSingle(TimeSpan.FromSeconds(5)); + var filename = Config.GetString("ShotTimeFile"); + using (var csv = new StreamWriter(Path.Combine(_saveFolder, filename))) { + csv.WriteLine("Shot,Time(ms)"); + + var watch = Stopwatch.StartNew(); + for (int i = 0; i < numImages; i++) { + var shotTime = watch.ElapsedMilliseconds; + csv.WriteLine($"{i+1},{shotTime}"); + var buffer = snapSink.SnapSingle(TimeSpan.FromSeconds(5)); - using (Mat img = Mat.FromPixelData(buffer.FrameType.Height, buffer.FrameType.Width, MatType.CV_8UC3, buffer.GetIntPtr())) { - using (Mat imgt = img.T()) { - SaveImages(imgt, i); + //using (Mat img = Mat.FromPixelData(buffer.FrameType.Height, buffer.FrameType.Width, MatType.CV_8UC3, buffer.GetIntPtr())) { + // using (Mat imgt = img.T()) { + // SaveImages(imgt, i); + // } + //} + while(watch.ElapsedMilliseconds < interval * (i+1) && i < numImages - 1) { + Thread.Sleep(1); } } - if (i < numImages - 1 && interval > 0) { - Thread.Sleep(interval); - } } _ic.LiveStop(); diff --git a/TIASshot/config.xml b/TIASshot/config.xml index 94c325d..2d4f10a 100644 --- a/TIASshot/config.xml +++ b/TIASshot/config.xml @@ -30,6 +30,7 @@ tcc_rois.jpg Shot0000.bmp Srgb0000.bmp + ShotTime.csv conv_rgb_srgb.csv conv_rgb_xyz.csv conv_srgb_xyz.csv