主要内容

visionhdl.ROISelector

选择感兴趣区域(ROI)从像素流

描述

visionhdl.ROISelector系统对象™选择积极的一部分从一个视频帧。框架的总大小是相同的。输出控制信号显示一个新框架的活跃区域。这个图表显示的像素区域在蓝色和橙色中概述的要求输出地区。

指定的区域输入帧作为一个像素返回流与像素标记为非活动以外的区域。

您可以指定一个固定的ROI的大小和位置,或者你可以选择帧位置动态通过使用一个输入参数。您可以选择多个地区。定义每个区域通过指定其左上角的坐标和尺寸。对象返回一组像素为每个地区指定和控制信号。对象集的不活跃的像素输出帧为零。

区域是相互独立的,所以他们可以重叠。如果你指定一个区域,包括活动框架的边缘,只返回的对象的活跃的部分地区。这个图表显示了三个请求区域输出帧。第二个输出地区不包括框架之上的不活跃的地区。

三个区域(一个部分下降外活动的框架,一个重叠),作为三个像素流返回。

垂直重用的对象还提供了一个模式。在这种模式下,您必须指定区域没有垂直重叠和对齐列。每一列地区股票的一个输出像素流。控制信号定义每个区域的流。这样的安排使并行处理的每一列,每个地区的下游处理逻辑重用一个列。使用这种模式,设置VerticalReuse财产真正的。使用visionhdlframetoregions函数将一个框架为垂直重用瓦地区。

八瓦地区作为两个像素流返回包含四个垂直的姿势。

选择感兴趣区域(roi)从一个像素流:

  1. 创建visionhdl.ROISelector对象并设置其属性。

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

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

创建

描述

例子

ROI= visionhdl.ROISelector (的名字,价值)创建一个系统对象,选择区域的活跃的帧从一个输入流。设置属性使用一个或多个名称-值对。在单引号附上每个属性的名字。例如,。“地区”,[1 1 32 24]配置对象选择32-by-24像素区域左上角的框架。

属性

全部展开

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

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

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

每一列的选项返回一个像素流区域,指定为真正的。当你设定这个属性真正的,您必须指定区域没有垂直重叠和一致的列。每一列的对象有一个输出像素流的区域。这样的安排使并行处理的每个列和下游的重用为每个地区列处理逻辑。使用visionhdlframetoregions函数将一个框架为垂直重用瓦地区。

依赖关系

要启用这个特性,设置RegionsSource财产“属性”

输出的位置区域定义,指定这些值之一:

“属性”——指定区域使用地区财产。

输入端口的——使用输入参数指定的区域对象。每个输入参数是一个研制出对应于一个地区的行向量。对象捕捉的价值地区当它接收输入参数音速启动设置为真正的在输入控制结构。

依赖关系

要启用这个特性,设置VerticalReuse财产

矩形的感兴趣区域选择从输入框,指定为一个R4矩阵。

R是区域的数量。四个元素定义每个区域左上角的坐标和尺寸的地区,必须的(hpovPoshSizevSize]。从左上角的坐标数活动框架,定义为(1,- 1)。hSize必须大于1。

当你设置VerticalReuse财产,区域是相互独立的,所以他们可以重叠。R不能大于16。

当你设置VerticalReuse财产真正的这个矩阵,地区没有垂直重叠,必须在列对齐。这个图表显示了两个无效区域的例子描述蓝色虚线。左边的区域垂直重叠另一个地区。底部的两个地区与其他地区的不对齐列。区域不需要覆盖整个框架。平铺的区域被标记为非活动之外的像素像素。列数不能大于16。

依赖关系

要启用该参数,设置RegionsSource财产“属性”

的数量地区输入参数的对象,指定为一个整数范围内(1、16)。

依赖关系

要启用该参数,设置RegionsSource财产输入端口的

使用

描述

例子

[pixel1, ctrl1] = ROI (pixelin ctrlin)返回下一个像素值,pixel1控制信号,ctrl1帧,掩蔽所产生的动态图像到一个新的地区。定义该地区通过设置地区产权研制行向量,(hpovPoshSizevSize]

[pixel1, ctrl1,…,pixelR,ctrlR] = ROI(pixelin,ctrlin)返回下一个像素值,pixel1,…, pixelR控制信号,ctrl1,…, ctrlR,每个流产生的掩盖活动图像帧。当你设置VerticalReuse财产每个输出流包含一个活动区域,流的数量NumberOfRegions属性值或的行数地区矩阵。当你设置VerticalReuse财产真正的,每一个输出流包含一组垂直的姿势。在这两种情况下,通过设置定义区域地区财产的R4矩阵ROI的坐标。

[pixel1, ctrl1,…,pixelR,ctrlR] = ROI(pixelin,ctrlin,region1,…, regionR)每个流的返回下一个像素值,pixel1,…, pixelR造成掩盖活动图像帧到1R新区域,所指导的region1,…, regionR参数。每一个地区输入是一个研制出ROI的行向量坐标。当你设置使用该语法RegionsSource财产输入端口的,NumberOfRegions财产R

这个对象使用一个流像素结构框架控制信号接口。这个接口允许对象独立运作的图像大小和格式,并联系其他视觉HDL工具箱™对象。接受的对象并返回一个标量像素值包含五个信号和控制信号的结构。控制信号表示每个像素的有效性和它的位置。将一个像素矩阵转化为一个像素流和控制信号,使用visionhdl.FrameToPixels对象。接口的描述,请参阅流像素接口

输入参数

全部展开

单一图像像素在一个像素流,指定为代表强度标量值。

你可以用multipixel流模拟系统对象接口,但是你不能生成系统对象的HDL代码使用multipixel流。为multipixel算法生成HDL代码,使用等效模型万博1manbetx®块。

该软件支持万博1manbetx仿真的数据类型,但不是HDL代码生成。

数据类型:使用uint|int|fi|逻辑||

控制信号的输入像素流,指定为一个pixelcontrol包含五个结构逻辑数据类型的信号。的信号描述像素的有效性和它的位置在框架。更多细节,请参阅像素控制结构

数据类型:结构体

感兴趣的区域,指定为一个行向量定义的四个正整数左上角的坐标和每个所需的输出帧的尺寸。向量一定形式(hpovPoshSizevSize]。指定R地区参数,RNumberOfRegions属性值。

依赖关系

要启用这个论点,设置VerticalReuse财产并设置RegionsSource财产输入端口的

数据类型:int|使用uint

输出参数

全部展开

输出像素,作为标量值返回。输出数据类型是相同的数据类型作为输入pixelin论点。默认情况下,输出像素参数的数量NumberOfRegions属性值,或的行数地区属性矩阵。当您设置VerticalReuse真正的对象有一个输出像素的论据,每一列的垂直的姿势。

数据类型:使用uint|int|fi|逻辑||

像素流控制信号指示每个输出像素的有效性和它的位置在框架内,作为结构返回5逻辑信号。更多细节,请参阅像素控制结构

默认情况下,输出控制参数的数量NumberOfRegions属性值,或的行数地区属性矩阵。当您设置VerticalReuse真正的,每个列的对象有一个输出控制参数的纵向布局区域。

数据类型:结构体

对象的功能

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

发行版(obj)

全部展开

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

例子

全部折叠

从文件加载一个源图像,然后显示图像。

frmOrig = imread (“coins.png”);[frmActiveLines, frmActivePixels] =大小(frmOrig);imshow (frmOrig)标题输入图像的

图包含一个坐标轴对象。标题输入图像的坐标轴对象包含一个类型的对象的形象。

创建一个序列化器对象和定义不活跃的像素区域。

frm2pix = visionhdl.FrameToPixels (“NumComponents”,1“VideoFormat”,“自定义”,“ActivePixelsPerLine”frmActivePixels,“ActiveVideoLines”frmActiveLines,“TotalPixelsPerLine”frmActivePixels + 20,“TotalVideoLines”frmActiveLines + 20,“StartingActiveLine”3,“FrontPorch”10);

创建一个对象来选择感兴趣的区域。定义一个矩形区域左上角的坐标和尺寸。

hpo = 80;vPos = 60;hSize = 65;vSize = 50;roicoin = visionhdl.ROISelector (“区域”,(hpo vPos hSize vSize])
roicoin = visionhdl。ROISelector with properties: VerticalReuse: false RegionsSource: 'Property' Regions: [80 60 65 50]

对测试图像通过调用序列化器对象进行序列化。pixIn是一个向量的强度值。ctrlIn是一个矢量控制信号结构。

[pixIn, ctrlIn] = frm2pix (frmOrig);

准备处理preallocating像素的输出向量。输出帧作为输入帧大小相同,但控制信号显示不同的活跃区域。

[~,~,numPixelsPerFrame] = getparamfromfrm2pix (frm2pix);(numPixelsPerFrame pixOut = uint8 (0, 1));ctrlOut = repmat (pixelcontrolstruct numPixelsPerFrame 1);

中每一个像素填充框架,应用该地区的面具。

p = 1: numPixelsPerFrame [pixOut (p), ctrlOut (p)] = roicoin (pixIn (p), ctrlIn (p));结束

创建一个反序列化器对象格式相匹配的新区域。像素流转换为一个图像帧通过调用反序列化器对象。由此产生的图像显示。

pix2frm = visionhdl.PixelsToFrame (“NumComponents”,1“VideoFormat”,“自定义”,“ActivePixelsPerLine”hSize,“ActiveVideoLines”vSize,“TotalPixelsPerLine”,hSize + 20);[frmOutput, frmValid] = pix2frm (pixOut ctrlOut);如果frmValid图imshow (frmOutput)标题输出图像的结束

图包含一个坐标轴对象。标题为输出图像的坐标轴对象包含一个类型的对象的形象。

算法

全部展开

生成的HDL代码visionhdl.ROISelector系统对象使用了两个32位的计数器。对象不使用额外的计数器为额外的地区。

扩展功能

版本历史

介绍了R2016a

全部展开