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

找到大约相同数量的最大数量c#,第1张

概述我从位图图像中获取RGB颜色列表.现在我想分开最大’近似’相同的数字. 即 245,230,230和235,230,230应视为相同(最大差异为5). 我成功地提取了相同的数字,显然也知道如何找到一个数字中找到最大值,但无法弄清楚如何告诉算法将10-30的差异视为相同的数字. 这是我的代码: for (int x = 0; x < bmp.Width; x++){ for (int y = 我从位图图像中获取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)

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

总结

以上是内存溢出为你收集整理的找到大约相同数量的最大数量c#全部内容,希望文章能够帮你解决找到大约相同数量的最大数量c#所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/1231829.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-06
下一篇 2022-06-06

发表评论

登录后才能评论

评论列表(0条)

保存