注册登陆后可查看附件和大图,以及购买相关内容
您需要 登录 才可以下载或查看,没有账号?注册会员
x
本帖最后由 石鑫华视觉 于 2017-5-11 09:49 编辑
NI视觉助手VisionAssistant教程 第一章基本概念第二节 显示图像显示显示图像是视觉应用程序中重要的组成部分,因为它可以让你观察图像数据。图像处理(Image Processing)和图像可视化(Image Visualization)是不同且单独的原理。图像处理是指创建、获取以及分析图像。图像可视化是指图像数据如何呈现以及在可视化图像上如何交互。一个典型的成像应用程序使用的许多在内存中的图像,应用程序是从来不会显示的。 什么时候使用使用显示功能来可视化你的图像数据,可以从图像显示环境中检索生成事件以及相关数据;可以在交互图像中选择ROI;也可以使用额外信息来注释图像。 概念显示功能显示图像,设置图像显示环境的属性,指定图像显示环境的颜色调色板,关闭图像显示环境,在图像显示环境中设置并使用一个图像浏览器。一些ROI功能-显示功能的子集-在图像显示环境中交互式的定义了ROI。这些ROI功能的配置和显示使用不同的绘图工具,检测绘图事件,并检索出图像显环境上绘制的区域的信息,同时也可以移动和旋转ROI。在图像上面进行无损覆盖可以显示重要信息却不会改变图像的像素值。 深入讨论本节内容描述了NI视觉中有效的显示模式(DisplayMode)以及16位灰度图像的显示映射方法。 显示模式显示图像的一个关键组成部分是视频适配器的显示模式。显示模式表明了显示屏上的像素的颜色可以由多少位显示。一般来说,从图像适配哭器中得到的显示模式有有效范围是8位到32位每像素,根据视频适配器中有效视频内存的数量以及你选择的屏幕分辨率来决定。 如果你有一个8位的显示模式,一个像素可以有256种不同颜色中的一种。如果你有一个16位的显示模式,一个像素则会65536种颜色中一种。在24位或32位的显示模式,屏幕上的像素的颜色分别使用3字节或4字节来编码。在这些模式中,使用8位来储存每个像素的红、绿、蓝三种成分。这些模式提供了大约1670万种颜色显示的能力。 理解图像显示模式是非常重要的对于理解NI视觉是如何显示不同的图像类型在屏幕上。图像处理函数经常使用灰度图像。因为显示屏的像素是由红、绿、蓝组成的,像素的灰度图像并不能直接的显示出来。 在24位或32位显示模式,显示适配器使用8位来编码灰度,提供了256级灰度。这样的颜色分辨率足以显示8位的灰度图像。然而,更高的位深度图像,如16位灰度图像,在24位或32位图像中并不能准确的表示。为了显示一个16位的灰度图像,要么忽略最低有效位,要么使用映射函数将16位转换成8位的图像。 16位图像显示的映射方法下面的技术描述了NI视觉转换16位图像到8位图像并且显示它们使用映射函数。映射函数均匀的分布16位图像的动态范围到8位的图像中。 l 全动态(Full Dynamic)-16位图像的最低强度值映射到0,最大强度值映射到255。图像中所有其它的值使用下面的方程映射到0~255之间的值。这种映射方法是通用的,因为它确保了图像的动态范围可以完整的显示。因为在图像中的最小和最大像素值是用于确定图像的完整动态范围的,拥有最小或最大值的噪声或有缺陷的像素(对于那些不是A级的传感器,其中会有坏点)可以影响显示图像的外观。NI视觉默认使用下面的技术: z=(x-y)/(v-y)×255 其中z是8位像素值,x是16位值,y是最小强度值,v是最大强度值。 l 90%动态(90%Dynamic)-对应于累积直方图上5%的强度被映射成0,对应于累积直方图上95%的强度被映射成255。在0~5%之间的值都被映射成0,而在95%~100%之间的值则都被映射成255。这种方法比全动态方法更强健,并且对于小的图像像素畸变并不敏感。这种方法需要计算累积直方图以及估计直方图。可以参考后面的图像分析中关于直方图的更多信息。 l 给定百分比范围(Given Percent Range)-这种方法类似于90%动态方法,只是这种方法的用于软件映射的累积直方图的最小和最大百分比的是由用户指定的。即90%动态方法中的5%与95%两个百分比是用户自定义的。如果定义为10%与90%,那么他的动态范围只有80%了。 l 给定范围(Given Range)-这种技术与全动态方法类似,只是其被映射成0和255的最小和最大值是由用户指定的。你可以使用这种方法来增强图像中某些区域的对比度,通过查找该区域的最小和最大值并且计算该区域的直方图。这个区域的直方图显示了像素的最小和最大强度。这些值可以用于拉伸整个图像的动态范围。 l 降档(Downshifts)-这种技术是基于像素值的移位。这种方法对16位的像素值使用指定数量的右移位并且显示移位后的最低有效位。这种技术截短了部分最低位,这些最低位不会显示。这种方法是非常快的,但是它降低了8位传感器的真正动态能力。它需要知道传感器成像时使用的位深度。例如,一幅图像是由12位的相机采集得到的,那么它需要4个右移位来显示相机采集到的图像中最重要的8位。如果你使用NI的图像采集硬件,这种技术默认用于MAX(Measurement & Automation Explorer)中。 调色板当一个灰度图像被显示在屏幕上时,NI视觉转换每个像素的值为红、绿、蓝对应的像素强度并显示在屏幕上。这个过程使用一个颜色表,称为调色板(Palette),它关联一种颜色到图像中每种可能的灰度值上。NI视觉提供了定制调色板的能力以用于显示8位灰度图像。 什么时候使用使用调色板,你可以在不改变像素数据的情况下对一幅图像生成不同的视觉表示。调色板可以产生影响,如底片显示或颜色编码显示。在后一种情况下,对于总颜色数量有限的特殊图像成分的细化,调色板是有用的。 在不同的调色板中显示图像可以帮助强调有特殊强度的区域,识别平滑或陡峭的灰度变化,表达那些在灰度图像中难以感知的细节。例如,在一个明亮的区域有小的强度变化时,人类的眼睛要更加的敏感,比在一个黑暗的区域有小的强度变化。使用颜色调色板可以帮助你区分这些轻微变化。 概念一个调色板是一个预定义的或用户定义的RGB值数组。它对于每个可能的灰度值定义了一个对应的颜色值来渲染这个像素。一个像素的灰度值作为索引一个表的地址,返回对应于红、绿、蓝强度值的三个值。这组RGB值定义了一个调色板中不同数量的红、绿、蓝混合生成一种颜色所能表示的值范围。 对于8位灰度图像,像素可以取值2^8或256级,值范围从0~255。颜色调色板则256个RGB元素组成。一个特定的颜色是红、绿、蓝三种颜色成分在0~255范围内取值的结果。如果红、绿、蓝三色有相同的值,则结果是灰度像素值。 一个灰度调色板联合不同灰度的每个值,以生成一个线性的、连续渐变的从黑到白的灰色图。你可以设置调色板分配黑色为0、白色为255,反之黑色为255、白色为0也可以。其它调色板可以反映线性或非线性变化从红到蓝、浅棕色到深棕色等等。 NI视觉有五个预定义的调色板。每个调色板强调不同的灰度。下图显示的是NI视觉助手中的调色板:
图1 NI视觉助手中的调色板
图1 NI视觉助手中的调色板 深入探讨以下的内容将介绍NI视觉中邓定义的5个调色板。在每个部分的图形代表每个调色板使用的颜色表。图形的水平轴代表了输入的灰度值范围[0,255],垂轴代表分配给对应的灰度值的RGB强度。在视觉助手的演示中,加载了一幅标准的256级从0~255范围内的灰度图。 Gray Palette灰度调色板这个调色板有一个渐变的从黑到白的灰度变化。每个值被赋于等量的红、绿、蓝值,以生成一个灰度值。
图2 灰度调色板原理
图2 灰度调色板原理
图3 灰度调色板显示标准灰度图像效果
图3 灰度调色板显示标准灰度图像效果 可以看到对于标准灰度图,使用灰度调色板时,从左到右是渐变的从黑到白的灰度值。 Temperature Palette温度底板这个调色板有一个从棕色到深棕色的层次。0是黑色的,255是白色的。
图4 温度调色板原理
图4 温度调色板原理
图5温度调色板显示标准灰度图像效果
图5温度调色板显示标准灰度图像效果 Rainbow Palette彩虹调色板这个调色板有一个从蓝色到红色的层次并且在中值范围有显著绿色范围。0为蓝色,255为红色。
图6 彩虹调色板原理
图6 彩虹调色板原理
图7彩虹调色板显示标准灰度图像效果
图7彩虹调色板显示标准灰度图像效果 Gradient Palette梯度调色板这个调色板有一个从红色到白色的调色板,且有在上限值范围有显著的浅蓝范围。0为黑色,255为白色。
图8梯度调色板原理
图8梯度调色板原理
图9梯度调色板显示标准灰度图像效果
图9梯度调色板显示标准灰度图像效果 Binary Palette二值调色板这个调色板由15种不同的颜色构成的17个循环。下面的表说明了这些颜色,其中g是灰度值。
表一 二值调色板内置颜色查找表
表一 二值调色板内置颜色查找表 0和255是特殊情况,0值代表了黑色,255的结果是白色。 这种周期性调色板适合显示二值图像以标签图像。
图10 二值调色原理
图10 二值调色原理
图11二值调色板显示标准灰度图像效果
图11二值调色板显示标准灰度图像效果 在LabVIEW开发平台中,有可能会遇到一种情况,就是二值化后看到的图像是全黑的。这个问题也是因为选择的调色板不合适或者是使用的替换值不理想造成的,详细参考本站文章: 关于LabVIEW中二值化后图像显示全黑的问题_石鑫华视觉网|机器视觉网|机器视觉论坛|机器视觉产品|图像处理|工业相机|工业镜头|视觉光源|视觉方案|视觉系统 无损覆盖一个无损覆盖允许你给显示图像注释一些有用的信息,实际上并不修改图像数据。你可以在图像上覆盖文字、线、点、复杂的几何形状以及位图图像,这些覆盖都不会改变底层图像的像素值,仅仅只影响显示图像。你也可以组织几个不同覆盖在一起以表示这些覆盖的相似性。这些覆盖组将作为一个单一的覆盖,并允许你应用常见的覆盖功能在整个覆盖组上,如清除、复制以及合并。下面的图像显示了如何使用覆盖来描述图像中的各个粒子的方向:
图12 无损覆盖
图12 无损覆盖 什么时候使用对于下面列举的许多目的,可以使用无损覆盖: l 在图像中突出目标被检测到的位置,如查找直边、圆、粒子、OCR等; l 添加定量或定性的信息到显示图像中,如匹配分数、匹配数量、分类分数、角度等; l 显示网络或对齐标志,如参考点、坐标系等。 更多的ROI与覆盖的知识,请查看下节ROI。 概念覆盖不会影响任何分析或处理函数的结果-它们只影响显示。覆盖是与一幅图像相关联的,因此没有特别的覆盖数据类型。你只需要添加覆盖到图像上即可。默认情况下,NI视觉在图像的大小或方向改变的时候会清除覆盖,因为同样的覆盖已经不再有意义。然而,你可以对覆盖组设置属性以便于转换,即应用于图像也应用于覆盖组。你可以保存有覆盖的图像使用PNG文件格式。
|