You could add the per-particle Attr parentU,parentV,spriteScaleXPP,spriteScaleYPP, first and use the expression to achieve it,
eg.float $u=parentU,float $v=parentV,float $rgb[]=colorAtPoint -o RGB -u $u -v $v yourTexture;float $lum=($rgb[0]+$rgb[1]+$rgb[2])/3;
spriteScaleXPP=spriteScaleYPP=$lum;
In order to prevent from the pop-up at the first frame,maybe you need to add the same expression in the creation expression:)