I’ve been reading through the book Programming Computer Vision with Python by Jan Erik Solem, which covers computer vision techniques on a low level.
Even at a basic level there is lots of complicated maths involved! There’s something about matrices that I find hard to get my head round. In any case, here’s one of the examples from the book that I edited to create an interactive program where you can warp a picture of Donald Trump onto a Moonrat.
It uses what is called homography. A homography is a transformation matrix, which is used to warp one set of coordinates to another set. In this case, the homography is a piece-wise affine transformation. This is because the source matrix (Trump) is split up into triangles and each is warped individually. This ensures a better fit. The source coordinates are the red crosses inputted by the user. This has many applications, but the most exciting for me is AR. I would love to try putting 3D/2D objects into a real time scene, like they have done in for this art exhibition: