python计算坐标点欧式距离_新手学FFmpge - 如何计算Overlay中的坐标点

Overlay 坐标点的计算

这张图片是从别处抄来的,但可以很形象的来描述如何计算Overlay坐标点.

1a8f23844d089c8c9cfb38770296e376.png

根据ffmpeg官网描述, overlay只能用来叠加两个输入源。 第一个视频源(这个视频源将会被放到后面,充当背景)称之为main,第二个视频源(放在第一个视频前面,充当画中画的角色)称之为overlaidoverlay的坐标系如上图所描述,最上角为(0,0),X轴向右递增,Y轴向下递增。

Overlay坐标点的计算,重点算的是overlaid原点在main中的位置,也就是上图中,input2的原点位置在input1中的坐标点。

在计算坐标之前,先来看一下Overlay两种坐标表示方式:

  • x=NNN:y=NNN
    NNN表示坐标点, 这种方式是通过X和Y指定坐标,例如: x=23:y=100 (input2原点在input1的 (23,100)位置)
  • NNN:NNN
    NNN表示坐标点, 但不使用X和Y来表示。 同样23:100也表示input2原点在input1的 (23,100)位置

第二种是第一种的简化方式。

下面来看坐标如何计算。在Overlay Filter中,每个视频源都有两个属性: 高(Height)和宽(Weight). 因此对mainoverlaid来说,其高和宽分别用main_w,main_hoverlay_woverlay_h来表示,如果不想写这么长,也可以用WHwh来简写替代。

了解表示方法之后,我们先来计算比较简单的四个位置: 左上角,左下角,右上角和右下角。

  • input2在左上角的情况

当我们期望input2出现在左上角时,此时input2的原点(左上角)坐标和input1的原点坐标是重合的,所以此时此刻input2的坐标是(0,0),如下图

bada7e3744147f71b601399f458c1b27.png
  • input2在右上角的情况

当我们期望input2出现在右上角的时候,参考一下开篇的坐标系,此时,input2的原点坐标中X点坐标不固定,但Y点坐标可以确定为0。 而X点的位置则可以通过 input1的宽带 - input2的宽度来确定。也就是 main_w - overlay_w。因此input2的原点坐标此时此刻就是(main_w - overlay_w, 0),如下图:

da5dde101d08970bdefc36868c976b6a.png

如果为了好看,想让input2离右边有一些距离,可以让X轴再向做移动10个像素,此时原点坐标就是(main_w - overlay_w - 10, 0)

  • input2在左下角的情况

有了上面两个坐标计算过程,左下角就容易计算了。 此时input2的原点X坐标为0, Y点坐标为main_h - overlay_h,因此原点坐标就是(0, main_h - overlay_h)

  • input2在右下角的情况

右下角和左上角是互补关系, 此时的原点坐标应该是(main_w - overlay_w, main_h - overlay_h )

其它坐标位置的计算和上述四种坐标点的计算原理相同,例如要将input显示在屏幕中央,input原点坐标就是(main_w /2 - overlay_w / 2, main_h / 2 - overlay_h / 2).

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值