I have learnt that perspective transformation is a projective transformation with the special case of the mapping planes being euclidean.
Where did you learn that? OK, input and output may be Euclidean planes, but not the same: the line at infinity in one setup might end up as a finite line (e.g. at the horizon) in the other setup.
A projective transformation that stays in the same Euclidean plane is an affine transformation.
I wanted to ask if image plane is euclidean? I would think it has homogeneous coordinates as when I perform a transformation with open cv I would use an x vector such as (x,y,1).
Homogenous coordinates can be useful for affine transformations as well, as they allow writing such a transformation as a single matrix multiplication. But an affine transformation, as opposed to a general projective transformation, will never change the last component from zero to non-zero or vice versa.
I am really confused about definitin of euclidean and projective space.
In terms of spaces, the projective space is what you get when you add infinite elements (the line at infinity in case of a projective plane) to an affine space. But I believe you'd be more at home thinking about transformations than spaces. An affine transformation will always preserve parallel lines, while a projective transformation will not. So for perspectives, you need projective transformations.
Are coordinates homogeneous with both planes?
I'd suggest using homogenous coordinates, yes.
Which transformation should I use for rotating camera stabilization?
Four points and their images uniquely define a projective transformation. So once you've registered four points, you can compute and apply the transformation.
Tools like Hugin do a lot more elaborate work here, by compensating for various optical distortions, by registering more points to get a better approximation on all of these, and so on. Have alook.