Prespectrive transform for Lane detection project
Show older comments
hello , any ideas on how to get the transformation matrix for this projection :
my goal is to obtain this :

from this :

i have tried this :
im = imread('test1.jpg');
initial_points=[580,475; 740,475; 300,650; 1050,650]
final_points= [250,0 ; 1100,0; 0,720; 1200,720]
tform = fitgeotrans(final_points,initial_points,'projective');
out = imwarp(im,tform);
and allways get something like this :

with open.cv in python i can do it with :
#4-points on the initial iamge
initial_points=np.float32([(580,475),(740,475),(300,650),(1050,650)])
#same 4 points in the porjected image
final_points=np.float32([(250,0),(1100,0),(250,720),(1100,720)])
Transformation_Matrix = cv2.getPerspectiveTransform(initial_points, final_points)
warped = cv2.warpPerspective(image, Transformation_Matrix,(1280,720)) #equivalent to imwarp
and i get this :

Answers (2)
Eduardo Lacerda
on 7 Jan 2020
0 votes
Prabhan Purwar
on 23 Jan 2020
Hi,
Following code may help
clc
close all
clear
oim = imread('test1.jpg');
im=oim(475:650,300:1050,:);
initial_points=[580,475; 740,475; 300,650; 1050,650];
final_points=[575,0; 720,0; 310,720; 1000,720];
initial_points(:,1) = initial_points(:,1)-475;
initial_points(:,2) = initial_points(:,2)-300;
tform = fitgeotrans(final_points,initial_points,'projective');
invtform = invert(tform);
out = imwarp(im,invtform);
subplot(1,2,1)
imshow(out);
subplot(1,2,2)
imshow(im);
Output:

For more information refer to the following link:
- https://in.mathworks.com/help/visionhdl/examples/lane-detection.html (Lane-detection)
- https://in.mathworks.com/help/driving/ref/birdseyeview.html (Birdseyeview)
1 Comment
Eduardo Lacerda
on 26 Jan 2020
Categories
Find more on Image Processing and Computer Vision in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!