主要内容

Vision.BlockMatcher.

估计图像或视频帧之间的运动

描述

估计图像或视频帧之间的运动。

  1. 创造Vision.BlockMatcher.对象并设置其属性。

  2. 使用参数调用对象,就像它是一个函数。

要了解有关系统对象如何工作的更多信息,请参阅什么是系统对象?

创建

描述

例子

Blkmatcher.= Vision.BlockMatcher.返回一个对象,Blkmatcher.,估计两个图像或两个视频帧之间的运动。通过通过搜索区域移动像素块来使用块匹配方法执行该估计。

Blkmatcher.= Vision.BlockMatcher(名称,价值使用一个或多个名称值对设置属性。将每个属性名称括在引号中。例如,blkmatcher = Vision.BlockMatcher('Centrafframesource','输入端口')

特性

展开全部

除非另有说明,否则属性是不可努力,这意味着在调用对象后无法更改其值。当您调用它们时,对象锁定释放功能解锁它们。

如果属性是调节,您可以随时更改其值。

有关更改属性值的详细信息,请参阅MATLAB使用系统对象的系统设计

参考帧源,指定为'输入端口'或者'财产'。当你设置时参考文件源财产'输入端口',必须指定参考帧输入块匹配器对象的方法。

参考和当前帧之间的帧数,指定为大于或等于零的标量整数。此属性在设置时适用参考文件源财产'财产'

最佳匹配搜索方法,指定为'彻底的'或者'三步'。指定如何在帧中找到像素块K.+1最佳匹配框架中的像素块K.。如果您将此属性设置为'彻底的',块匹配器对象选择帧中的像素块的位置K.+1。块匹配器通过一次计算昂贵的时间通过搜索区域移动到一个像素来实现块匹配。

如果您将此属性设置为'三步',块匹配器对象搜索帧中的像素块K.+1最佳匹配框架中的像素块K.使用稳步减少的步长。该对象开始于逐步等于最大搜索范围的一半。在每个步骤中,对象将搜索区域的中心点与位于区域的边界上的八个搜索点进行比较,并将中心点移动到所值,其值是最接近中心点的搜索点。然后对象将步长减小一半,再次开始该过程。此选项较少计算昂贵,但有时它没有找到最佳解决方案。

块的大小,以像素为单位指定为双元素矢量。

最大位移搜索,指定为双元素向量。指定像素块中的任何中心像素可以从图像移动到图像或从帧到帧移动的最大像素数。块匹配器对象使用此属性来确定搜索区域的大小。

匹配块之间的标准,指定为'平均误差(MSE)'或者'意味着绝对的差异(疯狂')

运动输出表格,指定为'幅度平方'或者'复杂形式的水平和垂直组件'

输入图像细分重叠,以像素为单位指定为双元素矢量。

定点属性

定点操作的舍入方法,指定为'地面''天花板''收敛''最近''圆形的'“最简单”, 或者'零'

当整数输入超出范围时,要采取的操作,指定为'裹'或者'饱和'

产品数据类型,指定为'与输入相同'或者'风俗'

产品字和分数长度,指定为缩放numerictype.(定点设计师)目的。此属性仅在您设置时适用AccumulatorDatyp.财产'风俗'

数据类型的累加器,指定为'与产品相同''与输入相同', 或者'风俗'

累加器字和分数长度,指定为缩放numerictype.(定点设计师)目的。此属性仅在您设置时适用AccumulatorDatyp.财产'风俗'

用法

描述

例子

V.= blkmatcher(一世计算输入图像的运动一世从一个视频帧到另一个视频帧,并返回V.作为速度大小的基质。

C= blkmatcher(一世计算输入图像的运动一世从一个视频帧到另一个视频帧,并返回C作为水平和垂直组件的复杂矩阵,当您设置时outputValue.财产复杂形式的水平和垂直组件

y= blkmatcher(一世Iref.计算输入图像之间的运动一世和参考映像Iref.当你设置时参考文件源财产输入端口

输入参数

展开全部

输入数据,指定为标量,向量或强度值矩阵。

输入参考数据,指定为标量值,矢量或强度值矩阵。

输出参数

展开全部

速度大小,作为矩阵返回。

水平和垂直组件,作为复杂矩阵返回。

图像和参考图像之间的运动,作为矩阵返回。

对象功能

要使用对象功能,请将System Object™指定为第一个输入参数。例如,要发布命名的系统对象的系统资源obj.,使用此语法:

释放(obj)

展开全部

系统对象算法
释放 释放资源并允许更改系统对象属性值和输入特性
重置 重置内部状态系统对象

例子

全部收缩

读并将RGB图像转换为灰度。

img1 = im2double(rgb2gray(imread('onion.png')));

创建块匹配器和Alpha Blender对象。

HBM = Vision.BlockMatcher('参考文件源'......'输入端口''blocksize',[35 35]);hbm.outputvalue =.'复杂形式的水平和垂直组件';halphabled = Vision.Alphablender;

通过[5 5]像素偏移第一个图像以创建第二个图像。

IMG2 = Imtranslate(IMG1,[5,5]);

计算两个图像的运动。

运动= HBM(IMG1,IMG2);

融合两个图像。

img12 = halphablement(IMG2,IMG1);

使用Quiver Plot显示图像上的运动方向。

[x,y] = meshgrid(1:35:尺寸(Img1,2),1:35:尺寸(Img1,1));imshow(img12)持有quiver(x(:),y(:),真实(motion(:)),imag(motion(:)),0)保持离开

在R2012A介绍