labview大神为你解读Picture Control 物件(1)
时间:10-02
整理:3721RD
点击:
天要在这边跟大家介绍的功能是 LabVIEW 的一个好用的功能,就是 Picture Control 对象。他主要的功能是可以在 Front Panel 上使用程序来显示所需要的图片,或是在图片上画制一些线条和文字,估计花几个单元来介绍这个 Picture Control,会从基本用法讲到一些我过去所运用的技巧。
常常会看到有一些 LabVIEW 制作出来的程序,其人机接口的使用方式非常的活泼,接口很友善,里面的互动按钮是以会变化的图形方式来呈现。到底这些功能是如何被制作出来的呢?以下方的程序来当作一个简单的范例来呈现,图片中的 LabVIEW VI 是一个时钟的程序,大部分在网络上下载的时钟范例都是使用右图的 Numeric => Gauge 来制作,而这支程序他并不是使用 LabVIEW 中内建的现成对象来制作时钟,是使用 Picture Control 来读取图片文件,再加上适当的图形旋转来组合成我们所看到的程序。所以如何活用 Picture 来制作一些有趣的功能是我们的主题。

首先介绍 Front Panel 中的 Picture 对象所在位置,在 Front Panel 中点选右键呼叫出 Function 选单,依序点选 Modern => Graph => Controls => 2D Picture,将其在 FrontPanel 拖曳出来,就会在 Block Diagram 中看到 Picture 对象。

在 Block Diagram中,如下图点选右键呼叫出 Function 选单,依序点选 Programming => Graphics & Sound,在这个区域中的右上方三个区域是可以对 2D Picture 做绘图的工具,分别是 Pictures Plots、Picture Function、Graphics Formats。

从最右边的 Graphics Formats 开始讲起,Graphics Formats 选单中上方的 Function 是可以从 JPEG、PNG、BMP 图文件中读取影像,以提供我们使用输出到 2D Picture 中,也可以将影像以这三个格式来储存到档案里,若有需要可以在网络上搜寻到更多格式的图档存取的 Function,例如像是 GIF 图档的存取 Function。当我们从图文件里读取到影像数据时,LabVIEW 会以 image data 的方式来储存这笔数据在内存中,右图的格式就是 image data 的内容,他使用 1D Array 来储存影像的数据,再去纪录影像的长宽、image depth (也就是影像所使用的Bits)。下方的 Flattern Pixmap 跟 Unflatten Pixmap 就是将 image data 转换成我们所熟知的 2D Array 的影像数据型态。

若是想要更加的了解关于这种 image data 的细部数据,可以按下 Context Help 中的 Detailed help,有更加详细的说明。

接着介绍第二个区块,Picture Functions 区域,这个区域上方的 Function 主要的功能是在影像中加上绘制的图形,例如在影像中画一个点、一条线、一个方块或是圆圈,以及在影像中加上文字等 Function。下方的 Function 右下角的 Color to RGB 和 RGB to Color 是将 Color U32 数值 (其实只用到 24bits) 转换成 RGB 的三个 U8 (0~255) 数值,也可将 RGB 的三个数值转换回 Color 数值。上方的 Draw Flattened Pixmap 可以将刚刚所介绍的 image data 转换成可输入至 2D Picture 的 Picture 数据型态。

有了以上的基本功能介绍后,我们可以写一个程序将我们计算机中的 JPG 图片利用 LabVIEW 的 Picture Control 来将图片加载 LabVIEW 的程序之中。下方就是一个基本的范例,先使用 Read JPEG File 将图档读取到 LabVIEW 中,以 image data 的数据格式存在,再使用 Draw Flattened Pixmap 将 image data 转成 Picture 输出到人机接口的 2DPicture。

这篇只是先简介 Picture Control 中的各个 Function 所在位置,以及简介一下大致一般的使用方法,在下一个单元我们就要开始使用 Event Structure 搭配 Picture Control 来制作有互动效果的程序。
这么好的 东东 尽然没有人 顶一下!
没有下文了吗?
要是能再详细点,或者有个全面的实例就更好了
顶,很棒真的很好用
顶,很棒真的很好用
这真是个高手。
非常好的帖子,真是受教了!
顶一个。
搂主肯定又是个技术牛,写的很好,顶
很好,正好需要,顶
很好的举例,有助于学习图像处理。
非常好的例子,学习了,谢谢
用了好久Lab VIEW,听岛主讲课终于清楚学会一个新功能!
