How to convert an image?

original image

You can see the stripes intersect. I want the stripes to be perpendicular.

I used the Photoshop perspective conversion function , got the result:

after perspective transformation

Although the stripes are now vertical, the cars at the far end are getting large, the cars at the near end are getting so small. This is not what I want.

I tried the Photoshop warp function . Photoshop gave me 8 control points, and I finally got my perfect result.

What i want

What is the name of this kind of transformation?

How to do software conversion? I am using C # + EmguCV (OpenCV)

Thank you very much.

+4
source share
2 answers

It is called Radial Distortion . This is usually fixed by the Browns model . Here is a tutorial on how to fix it using Photoshop.

enter image description here

Keep in mind that in your case you must first correct the radial distortion and only then do the projective transformation (homography), since the radial distortion is a property of the lens, while the projective transformation is a property of the world you are looking at.

+3
source

In addition to correcting radial distortion, the perspective can be corrected by applying a homography transformation (assuming the road is flat)

+2
source

Source: https://habr.com/ru/post/1438625/


All Articles