Page 220 - The Definitive Guide to Building Java Robots
P. 220
Preston_5564C06.fm Page 201 Friday, September 23, 2005 5:13 AM
CHAPTER 6 ■ VISION 201
public int getGreenMin(Color c) {
return getColor(c, 8);
}
public int getGreenMax(Color c) {
return getColor(c, 12);
}
public int getBlueMin(Color c) {
return getColor(c, 16);
}
public int getBlueMax(Color c) {
return getColor(c, 20);
}
public double getIndex(int index) {
return colorGram[index];
}
public void setMins(int[] mins) {
colorGram[3] = mins[0]; // red
colorGram[3+8] = mins[1]; // green
colorGram[3+16] = mins[2]; // blue
}
public void setMaxs(int[] maxs) {
colorGram[7] = maxs[0]; // red
colorGram[7+8] = maxs[1]; // green
colorGram[7+16] = maxs[2]; // blue
}
// column == r,g,b if primary color
// row = r,g,b of secondary color
// constant value
public void setRatio(int column, int row, double value) {
// rows will be 2,4,6
colorGram[(column + ((row-1)*4))-1] = 1;
colorGram[(row*4) -1] = value;
}
private int getColor(Color c, int index) {
int out = (int) (c.getRed() * colorGram[index]
+ c.getGreen() * colorGram[index + 1]
+ c.getBlue() * colorGram[index + 2]
+ colorGram[index + 3]);