Just get target elements by class in same way you've retrieved nodes with image
class.
var r = document.getElementsByClassName('image');
var targets = document.getElementsByClassName('imagecolor');
var p ;
for (p = 0 ; p < r.length ; p++ ){
var rgb = getAverageRGB(r[p]);
targets[p].style.color = 'rgb('+rgb.r+','+rgb.g+','+rgb.b+')';
}
For better performance avoid having in loop's body both read DOM and write DOM operations (use separate loops). Demo
var r = document.getElementsByClassName('image');
var targets = document.getElementsByClassName('imagecolor');
var rgb = [];
for (p = 0 ; p < r.length ; p++ ){
rgb.push(getAverageRGB(r[p]));
}
rgb.forEach((el,i) => {
targets[i].style.color = 'rgb('+el.r+','+el.g+','+el.b+')';
})