Exemplo n.º 1
0
 private void CmdDeal_Click(object sender, EventArgs e)
 {
     if (Thumb.Image != null)
     {
         Stopwatch Sw = new Stopwatch();
         Sw.Start();
         MC = Statistics.PrincipalColorAnalysis((Bitmap)Thumb.Image, SliderColorAmount.Value, SliderDelta.Value);
         Sw.Stop();
         LblStatus.Text = "计算主成分用时: " + Sw.ElapsedMilliseconds.ToString() + " 毫秒";
         PixelAmount    = Thumb.Image.Width * Thumb.Image.Height;
         PicR.Refresh();
     }
 }
Exemplo n.º 2
0
        private void CmdDeal_Click(object sender, EventArgs e)
        {
            //这个是测试功能
            if (Thumb.Image != null)
            {
                Stopwatch Sw = new Stopwatch();
                Sw.Start();
                int bluevalue = 1;
                MC = Statistics.PrincipalColorAnalysis((Bitmap)Thumb.Image, 20, 24);

                if (MC != null)
                {
                    dt = new DataTable();
                    DataColumn dc = new DataColumn("a");
                    dt.Columns.Add(dc);
                    dc = new DataColumn("颜色");
                    dt.Columns.Add(dc);
                    dc = new DataColumn("百分比");
                    dt.Columns.Add(dc);
                    dc = new DataColumn("数量");
                    dt.Columns.Add(dc);
                    dc = new DataColumn("RGB");
                    dt.Columns.Add(dc);
                    dc = new DataColumn("RGB灰度值");
                    dt.Columns.Add(dc);
                    dc = new DataColumn("R减G");
                    dt.Columns.Add(dc);
                    dc = new DataColumn("R减B");
                    dt.Columns.Add(dc);
                    dc = new DataColumn("G减B");
                    dt.Columns.Add(dc);
                    dc = new DataColumn("饱和度");
                    dt.Columns.Add(dc);
                    dc = new DataColumn("明度");
                    dt.Columns.Add(dc);
                    dc = new DataColumn("色相");
                    dt.Columns.Add(dc);
                    for (int i = 0; i < MC.Count; i++)
                    {
                        DataRow dr = dt.NewRow();
                        dr["a"]   = i;
                        dr["颜色"]  = IntToColor(MC[i].Color);
                        dr["百分比"] = (double)MC[i].Amount / PixelAmount;
                        dr["数量"]  = MC[i].Amount;
                        dr["RGB"] = IntToColorValue(MC[i].Color);
                        string[] DD = IntToColorValueCCC(MC[i].Color).Split(',');
                        dr["RGB灰度值"] = DD[0];
                        dr["R减G"]    = DD[1];
                        dr["R减B"]    = DD[2];
                        dr["G减B"]    = DD[3];
                        dr["饱和度"]    = DD[4];
                        dr["明度"]     = DD[5];
                        dr["色相"]     = DD[6];
                        if (Convert.ToInt32(DD[1]) < 0 && Convert.ToInt32(DD[2]) < 0 && Convert.ToInt32(DD[3]) < 0)
                        {
                            dt.Rows.Add(dr);
                        }
                    }
                    dt.DefaultView.Sort = "色相 desc";

                    dt = dt.DefaultView.ToTable();

                    bluevalue = BlueScore(dt);
                    if (bluevalue == 0)
                    {
                        bluevalue = 1;
                    }
                }



                Sw.Stop();
                LblStatus.Text = "计算主成分用时: " + Sw.ElapsedMilliseconds.ToString() + " 毫秒;  蓝天值为:" + bluevalue;
                PixelAmount    = Thumb.Image.Width * Thumb.Image.Height;
                PicR.Refresh();
            }
        }