Se countReg non è una costante non puoi usare un array allocato sullo stack (o almeno, non è ammesso dallo standard); puoi usare invece un std::vector:
codice:
std::vector<Vec3b> colors(countReg); 
colors[0]=Vec3b(255, 0, 0); // rosso
colors[1]=Vec3b(127, 127, 127); // grigio 50% 
colors[2]=Vec3b(0, 0, 0); // nero
colors[3]=Vec3b(0, 0, 0); // verde 
colors[4]=Vec3b(0, 0, 255); // blu
Quanto alla riga di "at": com'è dichiarata MatrixRegion?