string csvフォーマットを取得(IplImage src, CvSize size, string type) { string info = ""; double 平均, 分散; 平均 = src.Avg().Val0; double sum = 0, max = 0, min = 255; for (int x = 0; x < size.Width; x++) { for (int y = 0; y < size.Height; y++) { //CvScalar cs = Cv.Get2D(src, y, x); double val = Cv.Get2D(src, y, x).Val0; sum += Math.Pow(val - 平均, 2); if (val > max) { max = val; } if (val < min) { min = val; } } } 分散 = sum / (size.Width * size.Height); info = 平均.ToString("f") + "," + 分散.ToString("f") + "," + max.ToString("f") + "," + min.ToString("f") + "," + type; return(info); }
private string 画像情報を取得(IplImage src, CvSize size) { string info = ""; double 平均, 分散; 平均 = src.Avg().Val0; double sum = 0, max = 0, min = 255; for (int x = 0; x < size.Width; x++) { for (int y = 0; y < size.Height; y++) { CvScalar cs = Cv.Get2D(src, y, x); double val = Cv.Get2D(src, y, x).Val0; sum += Math.Pow(val - 平均, 2); if (val > max) { max = val; } if (val < min) { min = val; } } } 分散 = sum / (size.Width * size.Height); info = "平均=" + 平均.ToString("f") + "\n" + "分散=" + 分散.ToString("f") + "\n" + "最大=" + max.ToString("f") + "\n" + "最小=" + min.ToString("f"); return(info); }
private void OnClick_マスク画像(object sender, EventArgs e) { OpenFileDialog dialog = new OpenFileDialog() { Multiselect = false, // 複数選択の可否 Filter = // フィルタ "画像ファイル|*.bmp;*.gif;*.jpg;*.png|全てのファイル|*.*", }; //ダイアログを表示 DialogResult result = dialog.ShowDialog(); if (result == DialogResult.OK) { // ファイル名をタイトルバーに設定 this.Text = dialog.SafeFileName; if (マスク画像 != null) { マスク画像.Dispose(); } if (背景 != null) { 背景.Dispose(); } マスク画像 = Cv.LoadImage(dialog.FileName, LoadMode.GrayScale); マスク画像.Threshold(マスク画像, 254, 255, ThresholdType.Binary); 背景 = マスク画像.Clone(); if (マスク画像 != null && 検査対象 != null) { 合成画像 = 検査対象.Clone(); 合成画像 = 画像合成(検査対象, マスク画像); 背景 = 合成画像; } //評価画面.Instance.Show(); pictureBoxIpl1.ImageIpl = 背景; System.Diagnostics.Debug.WriteLine("マスク画像の平均=" + マスク画像.Avg().Val0.ToString("f")); } }