필터 지우기
필터 지우기

射影変換のやり方を知りたい

조회 수: 20 (최근 30일)
kuroshiba
kuroshiba 2022년 11월 16일
편집: kuroshiba 2022년 11월 25일
前回、https://jp.mathworks.com/matlabcentral/answers/1842433-?s_tid=srchtitle
にて射影変換をご教授いただいたのですが、座標を入れてもうまくいきません。
というのも、画像を抜き出して正面にするのではなく、元画像を加工するような形になってしまったからです。
にある、「出発」部分のみを切り出し、正面にするプログラムを組みたいのですが、ご教授いただけないでしょうか。

채택된 답변

Hernia Baby
Hernia Baby 2022년 11월 16일
手前味噌ですが、自分の回答を参考にお答えします
---
まずは画像を読み込みます
I = imread('test.png');
imshow(I)
次に抽出したい座標をとりましょう
座標はgetptsで適当にとりました
% [xi,yi] = getpts
x = [48, 422, 39, 429]';
y = [160, 66, 246, 176]';
originalPoints = [x,y];
そして写像変換したい座標を決めます
いただいたリンクを参考にしました
ow = floor(norm(originalPoints(2,:) - originalPoints(1,:)));
oh = floor(norm(originalPoints(3,:) - originalPoints(1,:)));
fixedPoints = [0, 0; ow, 0; 0, oh; ow, oh];
ここがミソですが fitgeotransimref2d をつかって変換&切り抜きを行います
tform = fitgeotrans(originalPoints, fixedPoints, 'projective');
RA = imref2d([size(I,1) size(I,2)], [1 ow], [1 oh]);
[out,r]= imwarp(I, tform,'OutputView', RA);
見てみましょう
imshow(out,r)
axis off
  댓글 수: 1
kuroshiba
kuroshiba 2022년 11월 17일
편집: kuroshiba 2022년 11월 25일
考えてもわからず、困っておりました。
本当にありがとうございます!

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

태그

Community Treasure Hunt

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

Start Hunting!