Question: I am using open cv and C++. I have 2 face images which contain marker points on them. I have already found the coordinates of the marker points. Now I need to align those 2 face images based on those coordinates. The 2 images may not be necessarily of the same height, that is why I can't figure out how to start aligning them, what should be done etc.

Answer: 
In your case, you cannot apply the homography based alignment procedure. Why not? Because it does not fit in this use case. It was designed to align flat surfaces. Faces (3D objects) with markers at different places and depths are clearly no planar surface.

Instead, you can:

1. try to match the markers between images then interpolate the displacement field of the other pixels. Classical ways of doing it will include [moving least squares](http://faculty.cs.tamu.edu/schaefer/research/mls.pdf) interpolation or [RBF](http://hal.archives-ouvertes.fr/docs/00/09/47/64/PDF/Bartoli_Zisserman_BMVC04.pdf)'s;
2. otherwise, a more "Face Processing" way of doing it would be to use the decomposition of faces images between a texture and a face model (like [AAM](http://en.wikipedia.org/wiki/Active_appearance_model) does) and work using the decomposition of your faces in this setup.
Define "align". 

Or rather, notice that there does not exist a unique warp of the face-side image that matches the overlapping parts of the frontal one - meaning that there are infinite such warps.

So you need to better specify what your goal is, and what extra information you have, in addition to the images and a few matched points on them. For example, is your camera setup calibrated? I.e do you know the focal lengths of the cameras and their relative position and poses?

Are you trying to build a texture map (e.g. a projective one) so you can plaster a "merged" face image on top of a 3d model that you already have? Then you may want to look into cylindrical or spherical maps, and build a cylindrical or spherical projection of your images from their calibrated poses.

Or are you trying to reconstruct the whole 3d shape of the head based on those 2 views? Obviously you can do this only over the small strip where the two images overlap, and they quality of the images you posted seems a little too poor for that.

Or...?