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); 背景 = 検査対象.Clone(); if (マスク画像 != null && 検査対象 != null) { 合成画像 = 検査対象.Clone(); 合成画像 = 画像合成(検査対象,マスク画像); 背景 = 合成画像; } //評価画面.Instance.Show(); pictureBoxIpl1.ImageIpl = 背景; System.Diagnostics.Debug.WriteLine("検査対象画像の平均=" + 検査対象.Avg().Val0.ToString("f")); } }