To calculate perspective projection divide by w.
vec4 result = vec4(x, y, z, 1) * perspective_view_model_matrix;
result /= w;
You are then left with the (x,y) in screen space (-1 to 1).
Multiply this by 1/2 screen width,height and you get pixel coordinates.
You then need to take the corresponding vertex UVs, multiply by the texture size and you get texel coordinates.
What you need to do next is calculate the polygon (triangle) pixel area and the polygon (triangle) texel area, divide one by the other and you get the texel-to-pixel ratio (or the other way around).
This will give you an approximation of how big/small the texture is relative to screen size.
It will work even rotated as long as the polygons are facing the screen and have uniform scaling otherwise you'll get an average as some texels will be more stretched than others.