主要内容

vision.BlockMatcher

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

描述

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

  1. 创建vision.BlockMatcher对象并设置其属性。

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

了解更多关于系统对象是如何工作的,看到的系统对象是什么?

创建

描述

例子

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

blkMatcher= vision.BlockMatcher (名称,值)设置使用一个或多个属性名称-值对。在报价附上每个属性的名字。例如,blkMatcher = vision.BlockMatcher('ReferenceFrameSource','Input port')

属性

全部展开

属性,除非另有注明nontunable后,这意味着你不能改变它们的值调用对象。对象锁当你叫他们,释放函数打开它们。

如果一个属性可调在任何时候,你可以改变它的值。

改变属性值的更多信息,请参阅系统设计在MATLAB使用系统对象

参考系来源,指定为输入端口的“属性”。当你设置ReferenceFrameSource财产输入端口的,一个参考系输入必须被指定一步块匹配器对象的方法。

参考和当前帧之间的帧数,指定为一个标量整数大于或等于零。这个属性设置时适用ReferenceFrameSource财产“属性”

最佳匹配搜索方法,指定为“详尽”“三步走”。指定如何定位块的像素帧k+ 1,最佳匹配块的像素帧k。如果你设定这个属性“详尽”块匹配器对象选择的像素块在坐标系的位置k+ 1。块匹配器通过搜索区域的块移动一个像素,也就是计算昂贵。

如果你设定这个属性“三步走”块匹配器对象搜索块的像素帧k+ 1,最佳匹配块的像素帧k使用一个稳步减少步长。对象以步长开始约等于最大搜索范围的一半。在每个步骤中,对象的中心点比较搜索地区八个点位于该地区的边界和移动搜索点的中心点的值最接近的中心点。对象然后减少步长了一半,并再次开始这一过程。这个选项不计算昂贵,尽管有时它没有找到最优的解决方案。

指定大小的块,在像素双元素向量。

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

块之间的匹配标准,指定为的均方误差(MSE) '平均绝对差(疯了)

运动输出形式,指定为“平方”的水平和垂直分量在复杂的形式

输入图像细分重叠,像素作为一个双元素中指定的向量。

定点属性

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

操作整数输入超出范围时,指定为“包装”“饱和”

产品数据类型,指定为同样作为输入的“自定义”

产品词和部分长度指定为一个按比例缩小的numerictype(定点设计师)对象。这个属性只适用于当你设置AccumulatorDataType财产“自定义”

数据类型的蓄电池,指定为“一样的产品”,同样作为输入的,或“自定义”

蓄电池词和部分长度,指定为一个按比例缩小的numerictype(定点设计师)对象。这个属性只适用于当你设置AccumulatorDataType财产“自定义”

使用

描述

例子

V= blkMatcher ()计算输入图像的运动从一个视频帧到另一个,并返回V一个矩阵的速度大小。

C= blkMatcher ()计算输入图像的运动从一个视频帧到另一个,并返回C作为一个复杂的水平和垂直分量矩阵,当你设置OutputValue财产水平和竖直分量在复杂的形式

Y= blkMatcher (,iref)计算输入图像之间的运动和参考图像iref当你设置ReferenceFrameSource财产输入端口

输入参数

全部展开

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

输入参考数据,指定为一个标量、向量或矩阵的强度值。

输出参数

全部展开

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

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

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

对象的功能

使用一个目标函数,指定系统对象™作为第一个输入参数。例如,释放系统资源的系统对象命名obj使用这个语法:

发行版(obj)

全部展开

一步 运行系统对象算法
释放 释放资源,并允许修改系统对象属性值和输入特征
重置 重置的内部状态系统对象

例子

全部折叠

阅读和RGB图像转换成灰度。

img1 = im2double (im2gray (imread (“onion.png”)));

创建一个块匹配器和α搅拌器对象。

hbm = vision.BlockMatcher (“ReferenceFrameSource”,输入端口的,“BlockSize”35 [35]);hbm。OutputValue =的水平和垂直分量在复杂的形式;halphablend = vision.AlphaBlender;

抵消第一形象[5]5像素创建第二个图像。

img2 = imtranslate (img1 [5,5]);

计算两个图像的运动。

运动= hbm (img1 img2);

混合这两个图像。

img12 = halphablend (img2 img1);

用颤抖的情节显示图像运动的方向。

(X, Y) = meshgrid(1时35:抵达大小(img1, 2), 1时35:抵达大小(img1, 1));imshow (img12)箭袋(X (:), Y(:),真正的(运动(:)),图像放大(运动(:)),0)

图包含一个坐标轴对象。坐标轴对象包含2图像类型的对象,颤。

版本历史

介绍了R2012a