gpt4 book ai didi

matlab - 在四个角点之间显示图像 Matlab

转载 作者:太空宇宙 更新时间:2023-11-03 19:51:28 25 4
gpt4 key购买 nike

假设我有 4 个角点:(x1, y1) ; (x2, y2) ;(x3, y3) ; (x4, y4) 和矩形图像大小 (m,n)如何显示图像,以便显示时图像的角位于上述四个点。换句话说,四个角可以控制图像旋转的角度(记住图像边缘可能不平行)谢谢!

最佳答案

您需要扭曲图像以获得通用解决方案。您可以按如下方式进行:

首先,阅读图像。

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');

既然你想让图像到达指定的角落,你就必须指定输出 View 。这可以通过如下构建引用二维图像来完成。

R=imref2d(size(img),[1 size(img,2)],[1 size(img,1)]);

最后,扭曲图像。

imgTransformed=imwarp(imread('cameraman.tif'),R,TFORM,'OutputView',R);

显示图像。

imshow(imgTransformed,[]);

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

关于matlab - 在四个角点之间显示图像 Matlab,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21818151/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com