当前位置: 代码迷 >> Android >> bmp图片上的色彩判定!求大神解答
  详细解决方案

bmp图片上的色彩判定!求大神解答

热度:97   发布时间:2016-04-28 07:19:50.0
bmp图片上的颜色判定!!求大神解答
小弟最近忙一个任务遇到一个问题,就是在获取了图上某点的RGB之后如何判断其颜色是什么?主要是判断所选点是黄绿红里的哪种。我尝试过把RGB转换为IHS来判断色彩,可是不知道是不是算法有问题,红色的色彩范围玉其他二者有交集。这让我蛋疼无比。以下是我的方法求鉴定
private void gethis(int xxx, int yyy) {
int c = bitmap.getPixel(xxx, yyy);

// extract RGB components from color pixel
int datar = (c & 0xff0000) >> 16;
int datag = (c & 0x00ff00) >> 8;
int datab = (c & 0x0000ff);
double r = datar * 1.0/ 255;
double g = datag * 1.0 / 255;
double b = datab * 1.0/ 255;

double min=Math.min(r, Math.min(g, b));
double h=0.0,i=0.0,s=0.0;

if (min==r) {
h=((b-r)/(3*(g+b-2*r)))+1/3;
}else if (min==g) {
h=((r-g)/(3*(r+b-2*g)))+2/3;
}else if (min==b) {
h=(g-b)/(3*(g+r-2*b));
}

i=(r+g+b)/3;
s=1-min/i;

 RgbDao rgbDao = new RgbDao(getBaseContext());
 Rgb rgb = new Rgb(xxx + "", yyy + "", h + "", i + "", s + "", r + "",
 g
 + "", +b + "");
//  rgbDao.addgreen(rgb);
 rgbDao.addred(rgb);

Log.i("xixi", "x:" + xxx + "y" + yyy + "\n" + "R" + r + "G" + g + "B"
+ b);
 Log.i("xixi", h + "h" + i + "v" + s+ "s");

}
bmp,ihs,颜色判断

------解决方案--------------------
这个是一个rgb和ihs转换的文档,可以看一下,和你的有一点不太一样
  相关解决方案