matlab让圆从小变大程序,matlab – 仿射变换重新缩放

我在图像中检测到一个显着区域,我执行了一系列操作,最重要的是仿射归一化(将椭圆转换为圆形,将梯形转换为等边矩形).

仿射归一化是矩阵中剪切和缩放的组合,如下所示:

Chol=[a,b

0,c]

a,[0,1]中的c和[-1,1]中的b(对于那些感兴趣的人,它是检测到的区域的协方差矩阵的Cholesky分解的逆矩阵).

一切正常,直到这里,但是当我将变换应用到原始帧时

AffineFrame=cv.warpAffine(RealFrame,[Chol,[0;0]],...

'DSize',[RealFrameSize(1),RealFrameSize(2)]);

% that's dst=cv.warpAffine(src,trafo) with trafo: 2x3 Matrix (here Chol and [0,0] translation)

我得到一个未缩放的图像,转换和图像大小:.

我真正想要的是 – 并且通过这条线的试错来实现这个特定的框架

AffineFrame=cv.warpAffine(RealFrame,[Chol,[0;0]]*S,...

'DSize',[RealFrameSize(1)*X,RealFrameSize(2)*Y]);

看起来像这样:

.

我知道问题在于S,X和Y的缩放.如果有人知道如何计算这个,那么你将节省我回到学校几何学的漫长旅程! (我已经拥有了可以从第二个图像时刻中提取的所有几何信息,如市长和短轴,各自的幅度,偏心率等等.)

编辑:一些典型值(不一定是这种情况):

Chol = 0.43 -0.23

0 0.67

我对X和Y的想法:L和W是主轴和短轴的大小(通常在5和50左右变化很大):

X=(1+L/(L+W));

Y=(1+W/(L+W));

仅当Chol的剪切量不大时才有效.根据形状,S在5到30之间做得很好.

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值