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(); } }
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(); } }