Tu problema es que no estás programando la funcion a ejecutarse en un futuro, sino que estas ejecutandola en el momento.
La firma de la funcion es setTimeout(FUNCTION, LAPSE), donde recibe FUNCTION vos le estás pasando el resultado de changeImagen y no la función en sí.
La solución? Usar una función anónima:
Código Javascript
:
Ver originalwindow.setTimeout(function() {
changeImagen(vIndex);
},5000);