加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

找到大约相同数量的最大数量c#

发布时间:2020-12-15 22:24:43 所属栏目:百科 来源:网络整理
导读:我从位图图像中获取RGB颜色列表.现在我想分开最大’近似’相同的数字. 即 245,230,230和235,230应视为相同(最大差异为5). 我成功地提取了相同的数字,显然也知道如何找到一个数字中找到最大值,但无法弄清楚如何告诉算法将10-30的差异视为相同的数字. 这是我的
我从位图图像中获取RGB颜色列表.现在我想分开最大’近似’相同的数字.

245,230,230和235,230应视为相同(最大差异为5).

我成功地提取了相同的数字,显然也知道如何找到一个数字中找到最大值,但无法弄清楚如何告诉算法将10-30的差异视为相同的数字.

这是我的代码:

for (int x = 0; x < bmp.Width; x++)
{
   for (int y = 0; y < bmp.Height; y++)
   {
      if (y < bmp.Height && y > 0)
      {
         c = bmp.GetPixel(x,y);
         if (db.Contains(c.R.ToString() + " " + c.G.ToString() + " " + c.B.ToString()) == false)
         {
            if (i == 0)
            {                   
               db.Add(c.R.ToString() + " " + c.G.ToString() + " " + c.B.ToString());
            }
         }
         else
            i++;
      }
   }
}

foreach (string dbs in db)
   richTextBox1.Text = richTextBox1.Text + dbs+Environment.NewLine;

//same amount of numbers not written above are:
richTextBox1.Text = richTextBox1.Text + i.ToString()+ Environment.NewLine;

解决方法

看来你需要一些这样的伪代码公式:

bSameColors(pixel a,pixel b,uint threshold) = 
  (Max(Abs(a.R - b.R),Max(Abs(a.G - b.G),Abs(a.B - b.B))) < threshold)

但是,如果要进行一些颜色聚类,请考虑与聚类的平均颜色值进行比较

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读