理论不多说,直接上代码:
main.m
%% MATLAB实现投影变换
%% 2015-09-05 create by fengyun
%% 在屏幕上依次点四个点(左上->右上->左下->右下),再点击回车键即可
clear all;
close all;
clc;
img1=imread('2.3.jpg');
img1=rgb2gray(img1);
[h1 w1]=size(img1);
mask=uint8(ones(h1,w1)); %二值模板,方便最后的合成
img2=imread('pai.jpg');
[h2 w2]=size(img2);
imshow(img1);
figure;imshow(img2);
p1=[1,1;w1,1;1,h1;w1,h1];
p2=ginput(); %依次点击公告牌左上、右上、左下、右下
T=calc_homography(p1,p2); %计算单应性矩阵
T=maketform('projective',T); %投影矩阵
[imgn X Y]=imtransform(img1,T); %投影
mask=imtransform(mask,T);
T2=eye(3);
if X(1)>0, T2(