How to find projective transformation with 4 points?

1 回表示 (過去 30 日間)
Miklós Förster
Miklós Förster 2020 年 12 月 2 日
回答済み: Tarunbir Gambhir 2020 年 12 月 22 日
Hi,
I need some help for fitgeotrans() function. I have this image:
this is a 902x902 image. I cropped it from an ortophoto.
and I want to project this image specify to the camrea parameters, to get an image like to take the picture the airplane's camera and get something like this:
my code is the following:
quadrangle = [1 902; ...
902 902;...
902 1;...
1 1];
cam_width = 4096;
cam_height = 2160;
trf = fitgeotrans(quadrangle, [1 1; 1 cam_width; cam_height cam_width; cam_height 1],'projective');
projectedIm = imwarp(map.pic, trf, 'OutputView', imref2d([cam_height, cam_width]));
I allways get this:
It is clear that I am missing something:/

回答 (1 件)

Tarunbir Gambhir
Tarunbir Gambhir 2020 年 12 月 22 日
Since the image is rotated 90 degrees clockwise, the scaled "height" and "width" should be interchanged while specifying the fixed points in fitgeotrans function.
Change the "trf" variable as following:
trf = fitgeotrans(quadrangle, [1 1; 1 cam_height; cam_width cam_height; cam_width 1],'projective');

カテゴリ

Help Center および File ExchangeConvert Image Type についてさらに検索

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by