Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 3
0
        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"));
            }
        }