matlab变换图片四个角黑色,在Matlab的四个角点之间显示图像

您需要扭曲图像以获得通用解决方案.你可以这样做:

首先,阅读图像.

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,[]);

您应该在指定点处具有图像的角,并且包含图像的框将具有原始图像的大小.