matlab裁剪图片边框,matlab – 如何裁剪图像并将图像旋转到边界框?

好的!

第一步:

计算矩形的大小

width = sqrt( sum( (b-a).^2 ) );

height = sqrt( sum( (c-b).^2 ) );

第二步:

计算从…到正面图像的仿射变换

Xin = [a(2) b(2) c(2) d(2)];

Yin = [a(1) b(1) c(1) d(1)];

Xout = [width 1 1 width];

Yout = [1 1 height height];

A = [Xin;Yin;ones(1,4)]';

B = [Xout; Yout]';

H = B \ A; % affine transformation

请注意,尽管我们允许f H是仿射的,角的选择(取决于宽度和高度)将确定H不会扭曲裁剪的矩形.

H2 = cp2tform( [Xin;Yin]', [Xout;Yout]', 'nonreflectivesimilarity' );

第三步

使用变换获取相关图像部分

thumb = tformarray( img, maketform( 'affine', H' ), ... %//'

makeresampler( 'cubic', 'fill' ), ...

1:2, 1:2, ceil( [height width] ), [], 0 );

thumb = imtransform( img, H2, 'bicubic' );

关于矢量化的说明:

取决于如何存储角的坐标(a … d)前两个步骤可以很容易地进行矢量化.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值