c# 识别图片的颜色值即RGB值
来源:互联网 发布:拙心网络米汤 编辑:程序博客网 时间:2024/06/05 08:02
//用于检索颜色相似的算法所声明的变量
int i, j;
string c11, c22;
int r = 16000, n1, m11, m1, n2, m22, m2;
Color c1 = new Color();
Color c2 = new Color();
public double ColorValue(Image p,Image pS1)//通过与标准图像颜色分布进行对比,并返回颜色分布相似值
{
//变量声明以及初始化
double[,] s1 = new double[20000, 2];
double[,] s2 = new double[20000, 2];
double seaBlue=0;//海蓝色像素点数
double percent;//海蓝色占图像比率
double u = 0, d;
string D = " ";
u = 0;
n1 = 0;
m11 = 0;
m1 = 0;
n2 = 0;
m22 = 0;
m2 = 0;
Form1 f=new Form1();
//计算打开的图片像素分布
if (p != null)
{
Bitmap p1 = new Bitmap(p);
for (i = 0; i < p1.Width - 1; i++)
{
for (j = 0; j < p1.Height - 1; j++)
{
c1 = p1.GetPixel(i, j); //获得图像每点的颜色基本属性
if (c1.R >= 0 && c1.R <= 100 && c1.G >= 100 && c1.G <= 255 && c1.B >= 150 && c1.B <= 255)//判断颜色是否为海蓝色区域
seaBlue++;
n1 = n1 + 1; //统计像素数
c11 = c1.Name; //返回RGB 值
m1 = Convert.ToInt32(Math.Pow(256, 3) / r); //每组颜色值的范围,这里设置组数为16000,可以扩大组数以提高精度,但会降低识别速度。
string str = c11;
//将十六进制装换成十进制
int val = (-1) * Int32.Parse(str, System.Globalization.NumberStyles.HexNumber);
m11 = Convert.ToInt32(Math.Floor(Convert.ToDouble(val / m1))); //提取颜色归属于哪一组
s1[m11, 0]++; //统计每组颜色的像素数
}
}
//用于对比的标准图片
Bitmap p2 = new Bitmap(pS1);
for (i = 0; i < p2.Width - 1; i++)
{
for (j = 0; j < p2.Height - 1; j++)
{
c2 = p2.GetPixel(i, j); //获得图像每点的颜色基本属性
n2 = n2 + 1; //统计像素数
c22 = c2.Name; //返回RGB 值
m2 = Convert.ToInt32(Math.Pow(256, 3) / r); //每组颜色值的范围
string str = c22;
//将十六进制装换成十进制
int val = (-1) * Int32.Parse(str, System.Globalization.NumberStyles.HexNumber);
m22 = Convert.ToInt32(Math.Floor(Convert.ToDouble(val / m2))); //提取颜色归属于哪一组
s2[m22, 0]++; //统计每组颜色的像素数
}
}
for (i = 0; i < 16000; i++)
{
u += (Convert.ToDouble((s1[i, 0] - s2[i, 0]) / n1)) * (Convert.ToDouble((s1[i, 0] - s2[i, 0]) / n1));
}
percent = seaBlue / n1;
if (percent > 0.03)//海蓝色比率大于0.03再进行d值的判断,否则直接跳过d值的计算
{
d = Math.Pow(u, 0.5);
D = String.Format("{0:F6}", d);
return d;
}
else
return d = 1;
}
else
return d=1;
}
- c# 识别图片的颜色值即RGB值
- 颜色的RGB值
- 颜色的RGB值
- 颜色的RGB值
- c# 获取图片像素的RGB值
- Android 修改Bitmap图片像素的信息 RGB颜色值
- php获取图片RGB颜色值的方法示例
- C#中RGB颜色值与整型值的转换
- C# 调用颜色的RGB值_RGB颜色转换十六进制颜色
- C# 调用颜色的RGB值_RGB颜色转换十六进制颜色
- 一些颜色的RGB值
- 得到颜色的RGB值
- 常见颜色的RGB值
- 常用颜色的RGB值
- 常用颜色的RGB值
- 常用颜色的RGB值
- 常用的颜色RGB值
- 读取颜色的RGB值
- In App Purchase总结
- WINCE 6.0编译西班牙语UI,葡萄牙语UI
- 带通配符的数
- 英语发音程序.c
- 【深入Java虚拟机】之二:Class类文件结构
- c# 识别图片的颜色值即RGB值
- LinuxCast学习笔记三十四:SMB
- Google账户两步验证是如何工作的?
- Gray码及其应用
- Java中try catch finally语句中含有return语句的执行情况(总结版)
- 一种在BIOS中嵌入应用程序的方法及实现
- 你应该了解的 5 个 JavaScript 调试技巧
- 百度快照越新就代表网站搜刮引擎优化质量越好吗
- LRU缓存算法 - C++版