Vale, ahora te contesto estrictamente a la duda de programación.
En PCL, y por extensión en PJSR, se utiliza un sistema de selecciones para acceder a diferentes canales o grupos de canales de una imagen, así como para definir y actuar sobre una ROI (Region of Interest) rectangular.
Por ejemplo, si quieres invertir sólo los píxeles del segundo canal de una imagen, dentro de un rectángulo de ancho=256 y alto=45, cuyo vértice superior izquierdo está en coordenadas de imagen {100,200}:
var img = new Image;
// ...
img.selectedChannel = 1; // 1 es el segundo canal
img.selectedRect = new Rect( 100, 200, 100+256, 200+45 );
img.invert();
O bien, supongamos que queremos hacer lo mismo para los canales segundo y tercero:
img.firstSelectedChannel = 1; // 1 es el segundo canal
img.lastSelectedChannel = 2; // 2 es el tercer canal
img.selectedRect = new Rect( 100, 200, 100+256, 200+45 );
img.invert();
Ahora supón que tienes dos imágenes, img1 e img2, y quieres restar el segundo canal de img2 del primer canal de img1, pero desplazando img2 100 píxeles a la derecha y 50 píxeles hacia abajo con respecto a img1:
var img1 = new Image;
var img2 = new Image;
// ...
img1.selectedChannel = 0;
img1.selectedPoint = new Point( 100, 50 );
img2.selectedChannel = 1;
img1.apply( img2, ImageOp_Sub );
Si usas selecciones de este tipo, asegúrate de resetearlas cuando no sean necesarias:
img1.resetSelections(); img2.resetSelections();
o si no tendrás "sorpresas".
Todo este rollo es para explicarte por qué estabas obteniendo las estadísticas del canal rojo de una imagen en color: porque el primer canal es la selección de canales por defecto. Ahora ya sabes cómo obtener estadísticas (y muchas otras cosas) sólo para determinados canales, o incluso regiones rectangulares de una imagen.