OpenCV IplImage - одномерный массив. Вы должны создать единый индекс, чтобы получить данные изображения. Положение вашего пикселя будет зависеть от глубины цвета и количества каналов в вашем изображении.
// width step
int ws = img_->withStep;
// the number of channels (colors)
int nc = img_->nChannels;
// the depth in bytes of the color
int d = img_->depth&0x0000ffff) >> 3;
// assuming the depth is the size of a short
unsigned short * pixel_value = (img_->imageData)+((y*ws)+(x*nc*d));
// this gives you a pointer to the first color in a pixel
//if your are rolling grayscale just dereference the pointer.
Вы можете выбрать канал (цвет), перемещая указатель пикселя pixel_value ++. Я бы предложил использовать справочную таблицу для квадратных корней пикселей, если это будет какое-либо приложение в реальном времени.