.net – 如何在图像中获得多数颜色?
发布时间:2020-12-13 22:47:36 所属栏目:Windows 来源:网络整理
导读:我想在.NET中检索背景图像中的大多数颜色.可能吗? 您可以循环遍历图像中的所有像素,并使用getPixel方法确定RGB值.然后,您可以使用字典存储ARGB值以及计数.然后,您可以查看图像中最常出现的ARGB值. var list = new Dictionaryint,int();Bitmap myImage = (Bi
我想在.NET中检索背景图像中的大多数颜色.可能吗?
您可以循环遍历图像中的所有像素,并使用getPixel方法确定RGB值.然后,您可以使用字典存储ARGB值以及计数.然后,您可以查看图像中最常出现的ARGB值.
var list = new Dictionary<int,int>(); Bitmap myImage = (Bitmap)Bitmap.FromFile("C:/test.jpeg"); for (int x = 0; x < myImage.Width; x++) { for (int y = 0; y < myImage.Height; y++) { int rgb = myImage.GetPixel(x,y).ToArgb(); if (!list.ContainsKey(rgb)) list.Add(rgb,1); else list[rgb]++; } } 正如所指出的,这并没有对类似的颜色表示同情.如果你想要一个更“普通”的多数颜色,你可以有一个相似性的阈值.例如而不是: if (!list.ContainsKey(rgb)) list.Add(rgb,1); else list[rgb]++; 你可以这样做: var added = false; for (int i = 0; i < 10; i++) { if (list.ContainsKey(rgb+i)) { list[rgb+i]++; added = true; break; } if (list.ContainsKey(rgb-i)) { list[rgb-i]++; added = true; break; } } if(!added) list.Add(rgb,1); 您可以将10的阈值提高到您需要的任何值. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐
- Windows下的Blackberry Emulator测试网站
- windows-server-2008 – 重新启动MS Server 2008
- 蓝牙 – Windows phone 8.1 streamsocket.connec
- windows – 没有QApplication或QCoreApplication
- 加速度计 – 如何识别Microsoft Band手势
- 如何最好地调整Windows开发机器?
- windows – 使用Delphi查找特殊驱动器
- 如何防止在Windows中的网桥MAC地址上设置本地管理
- 如何在Windows XP上安排每日脚本运行?
- iis – Azure VM:无法访问/ ping端口80
热点阅读