Prespectrive transform for Lane detection project
Afficher commentaires plus anciens
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 :

Réponses (2)
Eduardo Lacerda
le 7 Jan 2020
0 votes
Prabhan Purwar
le 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 commentaire
Eduardo Lacerda
le 26 Jan 2020
Catégories
En savoir plus sur Image Processing and Computer Vision dans Centre d'aide et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!