diff --git a/TIASshot/CameraBase.cs b/TIASshot/CameraBase.cs index 3883ccd..9407e77 100644 --- a/TIASshot/CameraBase.cs +++ b/TIASshot/CameraBase.cs @@ -52,7 +52,7 @@ readonly float UpdateRate; int _detectionCount = 0; Point2f _lastPosition = new Point2f(0, 0); - Mat _tccRois; // TCCのROI検出結果画像 + //Mat _tccRois; // TCCのROI検出結果画像 /// @@ -198,7 +198,7 @@ // チャートマスク作成 _chartMasks.Clear(); var roiSize = ptsPict.Count < 8 ? 60 : 80; - _tccRois = img.Clone(); + //_tccRois = img.Clone(); for (int i = 0; i < 24; i++) { var row = i % 6; var col = i / 6; @@ -207,10 +207,10 @@ var roi = new Rect(x, y, roiSize, roiSize); using (var mask = new Mat(1545, 810, MatType.CV_8U)) { Cv2.Rectangle(mask, roi, new Scalar(255), Cv2.FILLED); - var maskF = new Mat(_tccRois.Size(), MatType.CV_8U); + var maskF = new Mat(img.Size(), MatType.CV_8U); Cv2.WarpPerspective(mask, maskF, matH, maskF.Size()); _chartMasks.Add(maskF); - _tccRois.SetTo(new Scalar(0, 200, 0), maskF); + //_tccRois.SetTo(new Scalar(0, 200, 0), maskF); } } @@ -225,6 +225,7 @@ protected void CalcTcc(Mat img) { // 変換行列の計算 var tccRgb = GetTccRgb(img); + var imgRois = GetTccRoisImage(img); _convRGB2SRGB = CalcConvertMatrix(tccRgb, TCC_SRGB); var _convRGB2XYZ = CalcConvertMatrix(tccRgb, TCC_XYZ); var tccSrgb = ConvertColor(tccRgb, _convRGB2SRGB); @@ -237,10 +238,11 @@ // データ保存 SetSaveFolder("校正"); Cv2.ImWrite(Path.Combine(_saveFolder, Config.GetString("TccSaveFile")), img); - Cv2.ImWrite(Path.Combine(_saveFolder, Config.GetString("TccRoisFile")), _tccRois); + Cv2.ImWrite(Path.Combine(_saveFolder, Config.GetString("TccRoisFile")), imgRois); SaveMatToCsv(Path.Combine(_saveFolder, Config.GetString("ConvSrgbSaveFile")), _convRGB2SRGB); SaveMatToCsv(Path.Combine(_saveFolder, Config.GetString("ConvXyzSaveFile")), _convRGB2XYZ); SaveMatToCsv(Path.Combine(_saveFolder, Config.GetString("ConvSrgb2XyzSaveFile")), convSrgb2Xyz); + //SaveMatToCsv(Path.Combine(_saveFolder, Config.GetString("ConvSrgb2XyzSaveFile")), tccRgb); _form.ShowMessage("自動校正完了"); _form.EnableShots(); @@ -264,6 +266,19 @@ } /// + /// TCCのROI画像を取得 + /// + /// + /// + private Mat GetTccRoisImage(Mat img) { + var imgRois = img.Clone(); + for (int i = 0; i < _chartMasks.Count; i++) { + imgRois.SetTo(new Scalar(0, 200, 0), _chartMasks[i]); + } + return imgRois; + } + + /// /// 変換行列算出 /// /// 画像 diff --git a/TIASshot/Lucam.cs b/TIASshot/Lucam.cs index ba679ac..3ab1917 100644 --- a/TIASshot/Lucam.cs +++ b/TIASshot/Lucam.cs @@ -51,7 +51,7 @@ // カメラパラメータの初期値 _snap.BufferLastFrame = false; - _snap.Exposure = Config.GetFloat("Exposure"); + _snap.Exposure = Config.GetFloat("Lucam/Exposure"); _snap.ExposureDelay = 0; _snap.flReserved1 = 0; _snap.flReserved2 = 0; @@ -66,11 +66,11 @@ _snap.Format.Width = 1280; _snap.Format.X = 0; _snap.Format.Y = 0; - _snap.Gain = Config.GetFloat("Gain"); - _snap.GainBlue = Config.GetFloat("GainB"); - _snap.GainGrn1 = Config.GetFloat("GainG"); + _snap.Gain = Config.GetFloat("Lucam/Gain"); + _snap.GainBlue = Config.GetFloat("Lucam/GainB"); + _snap.GainGrn1 = Config.GetFloat("Lucam/GainG"); _snap.GainGrn2 = _snap.GainGrn1; - _snap.GainRed = Config.GetFloat("GainR"); + _snap.GainRed = Config.GetFloat("Lucam/GainR"); _snap.ShutterType = dll.LucamShutterType.GlobalShutter; _snap.StrobeDelay = 0.1f; _snap.StrobeFlags = 0; @@ -129,6 +129,8 @@ SetCameraParam(); // カメラパラメータの設定 + StartStopPreview(); // プレビュー開始 + return true; } diff --git a/TIASshot/config.xml b/TIASshot/config.xml index 6be47f0..49c1fab 100644 --- a/TIASshot/config.xml +++ b/TIASshot/config.xml @@ -1,10 +1,12 @@ - 25.0 - 1.0 - 2.62 - 1.72 - 1.70 + + 30.0 + 3.0 + 2.62 + 1.72 + 1.70 + -7 48