i think you are making a little confusione here: CollisionPolygon is not intended to show images (therefore it has no option to add texture), it simply create a polygon starting from a list of points in space, and that polygon is used to do things like collision, mouse click detection, etc.
to add a sprite you should use... a sprite :)
if you are using a Polygon2D to show shapes, maybe you are looking for the "texture" property.
Is there a better way to do it? It depends on your specific needs. When i need a simple "image", i always go with sprites, they are much easier to use than polygons, and you can use a CollisionPolygon2D with all the shape you need in front of them