您需要扭曲图像以获得通用解决方案.你可以这样做:
首先,阅读图像.
img=imread('cameraman.tif');
if size(img,3)==3
img=rgb2gray(img);
指定转换点集(在您的情况下,(x1,y1)…(x4,y4)),它们是fixedPoints.
movingPoints=[1 1;256 1; 256 256; 1 256] %(x,y) coordinate
fixedPoints=[25 25;250 12;255 200;30 180];
然后,估计转变.我选择投射变换.你也可以选择仿射.
TFORM = fitgeotrans(movingPoints,fixedPoints,'projective');
因为,您希望图像转到指定的角,您必须指定输出视图.可以通过如下构造参考2-D图像来完成.
R=imref2d(size(img),[1 size(img,2)],[1 size(img,1)]);
最后,扭曲图像.
imgTransformed=imwarp(imread('cameraman.tif'),R,TFORM,'OutputView',R);
显示图像.
imshow(imgTransformed,[]);
您应该在指定点处具有图像的角,并且包含图像的框将具有原始图像的大小.