主要内容

visionhdl.Opening

形态学开二进制像素流

描述

visionhdl.Opening系统对象™形态打开一个二进制像素流。这个操作形态侵蚀然后形态学膨胀每个像素计算通过使用相同的社区。作用于一个对象的二进制流强度值。

形态学打开一个二进制像素流:

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

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

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

创建

描述

开瓶器= visionhdl.Opening创建一个系统对象,形态打开一个二进制像素流。

例子

开瓶器= visionhdl.Opening (的名字,价值)使用一个或多个名称参数设置属性。例如,“社区”,getnhood (strel(“磁盘”,4))指定一个4×4 disk-pattern社区。

属性

全部展开

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

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

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

像素邻域,指定为二进制值的向量或矩阵。

的对象支持社区32-b金宝appy-32像素。使用一个结构化元素,设置社区财产getnhood(strel(形状)),在那里形状输入参数指定的吗strel(图像处理工具箱)函数。

行内存缓冲区的大小,指定为一个正整数。选择适应的2的幂活动像素的数量在一个水平线。如果指定的值不是一个两个的力量,最大缓冲区使用下一个两个的力量。

对象分配(n————- 1)LineBufferSize内存位置存储像素,n的行数社区属性值。

填充输入图像的边界的方法,指定为其中一个值。

  • “不变”——对象垫图像的腐蚀操作和零膨胀操作。这些值防止开放边界的活动的框架。

  • “没有”——排除填充逻辑。外的对象不设置像素图像帧为任何特定的值。这个选项可以减少硬件资源使用的对象,减少帧之间的消隐,是必需的。然而,此选项会影响输出的准确性的边缘像素帧。保持像素流时间,输出帧作为输入帧大小是一样的。避免使用像素从定义padding值计算,掩盖了n/ 2像素为下游操作框架的边缘。n的大小操作内核。更多细节,请参阅通过呕吐填充提高吞吐量

关于这些方法的更多信息,请参阅边缘填充

使用

描述

例子

(pixelout,ctrlout)=刀(pixelin,ctrlin)返回下一个二进制像素值,pixelout从形态,从而打开每个输入二进制像素周围的邻居,pixelin

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

输入参数

全部展开

输入像素,指定为一个逻辑的价值0()或1(真正的)。

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

数据类型:逻辑

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

数据类型:结构体

输出参数

全部展开

输出像素形态转换的操作,作为一个返回逻辑价值。

数据类型:逻辑

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

数据类型:结构体

对象的功能

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

发行版(obj)

全部展开

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

例子

全部折叠

从文件中加载一个源图像。选择的部分图像匹配所需的测试尺寸。这个源图像包含像素强度值uint8数据类型。应用阈值的像素数据转换为二进制值。

frmOrig = imread (“rice.png”);frmActivePixels = 64;frmActiveLines = 48;frmInput = frmOrig (1: frmActiveLines, 1: frmActivePixels);frmInput = frmInput > 128;图imshow (frmInput,“InitialMagnification”标题,300)输入图像的

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

创建一个序列化器系统对象™和定义不活跃的像素区域。设置每个活动后不活跃的像素线的数量至少两倍水平附近的大小。在每一帧的行数设置为至少两倍垂直社区的大小。

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

创建一个形态开放系统对象。

刀= visionhdl.Opening (“社区”的(5,5));

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

[pixin, ctrlin] = frm2pix (frmInput);

准备过程的像素流preallocating输出向量。

[~,~,numPixelsPerFrame] = getparamfromfrm2pix (frm2pix);pixout = false (numPixelsPerFrame, 1);ctrlout = repmat (pixelcontrolstruct numPixelsPerFrame 1);

中每一个像素填充框架,计算出演变的价值。监控对象的控制信号来确定延迟。延迟的配置取决于活动像素的数量在一个线和附近的大小。

foundValIn = false;foundValOut = false;p = 1: numPixelsPerFrame如果(ctrlin (p)。有效& & foundValIn = = 0) foundValIn = p;结束[pixout (p)、ctrlout (p)) =刀(pixin (p), ctrlin (p));如果(ctrlout (p)。有效& & foundValOut = = 0) foundValOut = p;结束结束objLatency_cycles = foundValOut - foundValIn
objLatency_cycles = 368

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

pix2frm = visionhdl.PixelsToFrame (“NumComponents”,1“VideoFormat”,“自定义”,“ActivePixelsPerLine”frmActivePixels,“ActiveVideoLines”frmActiveLines,“TotalPixelsPerLine”,frmActivePixels + 20);[frmOutput, frmValid] = pix2frm (pixout ctrlout);如果frmValid图imshow (frmOutput,“InitialMagnification”标题,300)输出图像的结束

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

算法

这个对象实现的算法描述开放块引用页面。

扩展功能

版本历史

介绍了R2015a

全部展开

另请参阅

对象

功能

  • (图像处理工具箱)