资源描述
第四章 图像增强
很多时候,我们采集到的图像并不理想,含有许多噪声、非目标区域、杂点、未完整等等,面对这种情况,进行图像处理时,如果不对原始图像进行增强处理,那么对测量结果会的精度会产生一些影响,例如寻找边缘,如果需要拟合成线的点很离散,那么,拟合出来的线很可能会“漂”的很厉害。因此,许多情况下,我们需要对原始图像进行增强,以达到更加理想的效果。如图4-1所示。
图4-1 图像增强函数在图像处理中的应用
在图4-1中,我们应用了一个简单的例子,寻找一条边缘。采集图像后,我们对原始图像创建了一个ROI(Region of Interest:兴趣区域、目标区域,图中的绿色框),并对此ROI进行滤波处理,从图中可以看到,绿色框中经过婆婆的图像与外面的图像是不一样的。这就是图像增强的效果。当然,例子中的原始图像效果相对较好,增强的效果显现不明显。
下面我们来看一下,图像增强函数选板具体的函数及其使用方法。
图4-2 图像增强选板
增强图像中,共有六个可用函数。利用此六个函数,我们可以在分析图像前,对图像进行预先处理,以提高图像质量。
1. Vision Assistant:Enhances image features,filters noise,extracts colors planes,and more.
第一个函数为视觉助手。在VBAI中也有一个视觉助手,不过这个视觉助手并不像NI视觉开发模块中的视觉助手功能强大,只是包含了一些图像增强的功能。因为VBAI其它的函数选板中含有大量的分析测量函数,所以,在这个视觉助手中并没有分析测量类的函数。利用视觉助手可以增强图像特征、过滤噪声、提取颜色平面、图像计算、形态学处理等。因为其中的函数过多,将会在后面章节中加以详细解释,这里就一笔带过。
2. Filter Image:Prepares an image for processing so that you can extract only the information you need for processing.
第二个函数为图像滤波:准备一幅图像,提取需要用于处理的信息为后面图像处理。点击此函数,将会出现此函数的配置选板,如图4-3所示:
图4-3 过滤图像配置选板
从图中可以看到,当配置函数时,状态栏为灰色禁用状态,即在配置函数时,状态、连续运行等都是禁用的。仅有一个运行一次(Run State Once)有效,点击此按钮可以运行一次当前滤波及前面采集函数,用于验证滤波的效果。在界面右下角,我们可以看到配置选板的主体main选项卡,如图4-4所示。
图4-4 过滤图像-主体
在配置主体中,我们需要输入步骤名(Step Name)、选择目标区域Region of Interest、是否改变ROI的位置Reposition Region of Interest、选择参照坐标系(Reference Coordinate System)等。
Step Name步骤名是当前步骤的名称,值得注意的是,步骤名不能以空格开始,即名称前不允许出现空格。
ROI:目标区域,下面的下拉菜单有两个选项,一个是Constant(常量),另一个是Full Image(整幅图),我们可以选择整幅图,那样就不需要再画ROI,而如果选择常量,则需要手动画ROI。我们可以利用菜单下面的快捷工具栏,选择合适的工具来画ROI,如图4-5所示。
图4-5 ROI工具
ROI工具栏随着选择函数的不同出现的工具也会有不同。在此处出现了矩形、旋转矩形、椭圆、环形、多边形、徒手。另外,我们可以利用放大、缩小、原始尺寸、适合屏幕等缩放工具来查看图像,使我们能更好的把握如何设置ROI。
Reposition Region of Interest:改变ROI的位置,选择上后,在后面的图像分析处理过程中,可以根据坐标系改变ROI的位置。Reference Coordinate System为参考坐标系。如果没选中改变ROI位置,则ROI以当前默认坐标系为参照,即图像左上角为原点,左到右为X轴,上到下为Y轴。此功能必须在前面的步骤中已经建立了坐标系后才可使用,关于坐标系的建立,将在后面的定位特征章节介绍。
图4-6 过滤图像-滤波器选择
如图4-6中,为滤波Filters选项卡。可用的滤波器类型很多。Original Image为原始图像;Smoothing为平滑型滤波器,包括Low Pass低通、Local Average局部平均、Gaussian高斯、Median中值;Edge Detection为边缘检测型滤波器,包含了Laplacian拉普拉斯、Differentiation微分、Prewitt、Sobel、Roberts滤波器;Convolution为卷积型滤波器,包含Highlight Details高亮细节、Custom自定义滤波器。滤波器会有滤波器尺寸(Filter Size)、内核尺寸(Kernel Size)、内核(Kernel,又可以叫掩模、算子、模板等)三个可能出现的参数,视各滤波器不同而不同。如何设计内核这里就不详细介绍,如有兴趣,可参看一些图像处理原理类的书籍。从图4-6中可以看到,当我们选择高亮细节滤波器、内核大小为7*7时,文字部分黑色与背景白色的对比度明显比周围没经过滤波的地方要强(为显示效果,已经将图像放大为原始图像,此图像为500万像素的AVT Guppy Pro 503B相机拍摄)。这就是滤波的好处,可以将特征突现出来从而更容易的查找、测量、计算出特征。
在配置面板的底部有一个Step Status指示灯,表示当前步骤用设置的参数来检查图像是否通过,此处的状态只能是PASS(通过)的,在后面一些测量函数中将会出现FAIL(失败)。另外还有一个OK、一个Cancel按钮,OK为确定当前设置,Cancel为放弃当前设置。步骤状态、OK、Cancel三个控件,在后面的函数讲解中,基本上都是会出现的,以后就不再叙述。
3. Threshold Image:Thresholds an image.
二值化图像(字面意思阈值图像),对图像进行二值化处理。即图像中只有黑白两色,而不是灰度图或彩色图。点击此函数进入二值化配置界面,如图4-7所示。
图4-7 二值化配置
二值化配置只有一个主体选项卡,包含了Step Name步骤名、Look For寻找(目标类型)、Method方法、Histogram直方图、及Lower Value(Limit)阈值设定等部分。其中寻找目标类型有白色目标、黑色目标、灰色目标可供选择;方法有手动阈值、自动阈值、局部阈值等;直方图用于显示图像各级灰度所占的比重;阈值设定Lower Value与Lower Limit、Upper Limit视方法不同而不同,有些方法需要设置阈值值,有些需要设置阈值界限。
图4-7只是针对灰度图产生的二值化配置界面,如果图片源为彩色图时,其配置界面如图4-8所示。
图4-8 彩色图像二值化
彩色图像二值化中有一个颜色模式Color Mode、预览颜色Preview Color、阈值设置。颜色模式可选的有RGB、HSL、HSV、HSI。根据选择颜色模式不同,下面可用于阈值设置的参数也不同。如RGB时,是调整红R、绿G、蓝B三色的阈值,HIS是调整色调H、饱和度S、强度I等。
4. Segment Color Image: Segments a color image using a color classifier and produces a greyscale image.
分段彩色图像:使用颜色分类器对一幅彩色图像进行分段,然后生成灰度图像
图4-9 分段颜色主体选项卡
在main主体选项卡中,Step Name步骤名、Region of Interest(ROI)兴趣区域、Reposition Region of Interest转换ROI、Reference Coordinate System参考坐标系都与前面讲的函数的主体选项卡一样,这里就不多介绍。
Color Classifier File Path颜色分类器文件路径,是需要选择一个颜色分类器文件。可以使用这个框边上的文件夹选择按钮选择。如果一开始没有选择颜色分类器文件时,则在下面有一个New Classifier File…按钮,点击此按钮则新建一个颜色分类器文件。如果是选择已经有的颜色分类器文件,则此按钮提示信息为Edit Classifier File…。即无文件时为新建,有文件时则为编辑。
图4-10 分段颜色主体选项卡无颜色分类器文件
点击New Classifier File…按钮,然后进入颜色分类器界面,如图4-11所示:
图4-11 颜色分类器训练界面
在这个界面中,大部分的工具按钮与VBAI的主界面类似。先来看一下左下角的两个选项卡页面。
Options选项:其中左边的Color Options颜色选项,下面有两个参数,一个为Sensitivity灵敏度,其中值有Low低、Medium中、High高,另一个参数为Use intensity使用强度,如果不使用强度,则仅使用色调、饱和度。右边为Engine Options引擎选项,有三个选项,Method方法:Nearest Neighbor最近邻,K-Nearest Neighbor K最近邻,Minimum Mean Distance最小均值距离;K,K最近邻的K值大小(具体算法请查看最神秘的相关书籍,其实我也搞不懂这些算法);Metric度量:有Maximum极大值、Sum求和、Euclidean欧几里德三种方式。默认会用Sum方式,大部分的分类器应用都使用此方法,极大值用在最灵敏的差异分类中。而欧几里德则应用在较少的差异灵敏性中。具体使用可参考NI Vision For LabVIEW Help帮助文档。其中有较详细的说明(英文)。
图12 颜色分类器训练界面-Color Vector
Color Vector颜色向量:其中有六个参数。分为两排,上面一排为选择的类的参数:Selected Class: Hue选择的类为色调(这里提示需要训练。转到右上角的Classify选项卡,然后点击训练分类器可以训练,前提是先添加类Add Class,并且添加样品Add Sample,如果已经训练,提显示选择的类的颜色);Saturation饱和度,这里是指选择的类的饱和度。Intensity为选择的类的强度。如果在Options中未勾选Use Intensity则此框为禁用。下面一排的三个参数与上面的是一样的概念,只不过其指示的是ROI中的色调、饱和度、强度。
图4-13 颜色分类器训练界面-Add Sample添加样品
在添加样品选项卡中,上面有一提操作提示信息,可以按照上面的提示信息完成添加样品的动作。
首先需要打开图片。如果是在颜色分类器函数前已经完成了采集图像(如从相机获取、从电脑中获取等),则点击颜色分类器及新分类器文件后,会将图像传递到界面中,因此可以省略此步。当然也可以使用File文件中的Open Image打开图片;
接下来在图片上使用ROI工具画一个ROI,这个ROI包含了你想要的颜色样品;
使用图像显示窗口下面的Options/Color Vector选项卡高速参数;
如果类别标签还没有创建,则点击Add Class添加类别按钮。图4-13中我们已经设置了一个类别,我们再添加几个类别:
图4-14 颜色分类器-Add Class添加类别
添加完需要的类别后,然后在类别表单中选择合适的类别。如我们类别中的Blue、Green、Red三个类,我们ROI为红色,则选择Red类别。然后点击Add Sample添加样品,添加ROI中的颜色到选择的类别中。
图4-15 颜色分类器-添加样品
点击完添加样品后,在Red所在的类别后面的#Samples样品数中可以发现其数由0变为1。这时就已经完成了一个样品的添加。
也可以点击Delete Class删除类别、Rename Class重命名类别。
图4-16 颜色分类训练-Classify分类
当我们添加完样品后,在Classify分类选项卡中的Train中Train Classifier按钮后面有一个黄色的感叹号,表示需要训练,我们点击此Train Classifier按钮,完成训练。
图4-17 完成训练
完成训练后,Train Classifier训练分类器后面的黄色感叹号消失了,在Classify分类中出现了结果(Class Label: Red; Classification Score: 1000分类分值,表明指定的类来表征输入样品比其它类到底有好多少;Identification Score: 1000认出分值,表明输入样品与指定类的相似度,仅当分类分值未达到指定的分数时才使用此值)以及最接近的样品图片。
图4-18 颜色分类器-Edit Classifier编辑分类器
在编辑分类器中,左上角会显示所有的Class Label类别标签。如果有了解过OCR的话,在这里就比较容易了,这其中就相当于把很多种颜色归于一类,如深蓝、天蓝、海蓝等都归为Blue,而在字符识别中,我们可以把宋体的石、楷体的石、华文行楷的石都认为是石字。或者是认为5号字体的石、3号字体的石、60点的石也都认为是石。
编辑分类器的左边则可以对分类器文件添加说明信息。也可以使用Relabel对类别进行重命名,也可以使用Delete删除选中的类别样品。下面的Brows Display则可以显示所有的样品,也可以选择某个类别的所有样品。
设置完成后,保存颜色分类器文件,关闭颜色分类器训练界面,返回函数节点。如图4-9所示的主体选项卡。
切换到Settings设置选项卡:
图4-19 颜色分段-Settings设置
在设置中,我们可以根据ROI Size兴趣区域的大小设置Widows Size窗口大小的Width宽和Height高,可以设置Step Size步骤大小,也可以勾选Refine Segmentation细化分段,可以勾选Auto Calculate Maximum Distance自动计算最大距离,设置Minimum Particle Area(Pix^2)最小粒子面积(平方像素)、Maximum Particle Area(Pix^2)最大粒子面积、Minimum Identification Score最小认出分值;Display Mode显示模式分为Show Segmented Image显示分段图像和Overlay Classes on Image在图像覆盖类别两种模式,第一种显示分段图像模式,使用第三个选项卡Pixel Mapping像素映射中的指定值进行替换。第二个则表类别覆盖到图像上;Elapsed Time为消耗时间。
图4-20 颜色分段-Pixel Mapping像素映射
像素映射可以将不同的颜色类别映射为指定的灰度值,如图中将Blue映射为85灰度,将Green映射为169灰度,将Red映射为254灰度。
图4-21 颜色分段-Limits极限设置
极限选项卡中,Pass Inspection if…通过检查如果…:可以根据某个类别的百分比设置,也可以根据某个类别的面积设置,同时还可以根据未识别的类别百分比和面积设置。
Sort Results by (label/Area):结果排序按照标签或面积;
Sort Order Ascending/Descending:排序方式升序或降序;
Color Segmentation Results颜色分段结果:显示了各类别所占百分比以及面积。
使用此函数可以检查视场中的颜色变化或者检查某种颜色有没有出现、出现的面积等。
5. Calibrate Image:Calibrates an image to perform measurements in real world units.
标定图像:标定图像以便使用实际单位测量。这个函数以前面在采集图像中讲的标定类似,可参考采集图像中讲述的标定。
6. Create Region of Interest:Creates a region of interest that you can use in subsequent steps.
创建目标区域:创建一个能够用于随后步骤的目标区域。很多时候,我们拍摄一幅图像,目标区域其实是很有限的一部分,而其它部分并不是我们需要的,甚至是干扰的,这时我们就可以利用此函数,将目标区域提取出来,然后再进行分析。当然,有些人会问,前面那个过滤图像不是也有目标区域吗?是的,过滤图像是有目标区域,其它很多函数也都有目标区域,但是我们并不希望每添加一个函数都要设置一次目标区域。当然我们也可以调用前面可以设置ROI函数的ROI,但是为了统一,我们可以首先建立一个ROI。点击函数,进入配置界面如图4-22所示。
图4-22 创建ROI
主体中的内容,在前面都已经介绍过,分别是步骤名、参照坐标系、改变目标区域,这里就不多讲。下面看Coordinates坐标选项卡。如图4-23所示。
图4-23 创建目标区域-坐标设置
ROI Type:目标区域类型。可以选择Point点、Line线、Rectangle(Top/Left)矩形(左上/右下)、Rectangle(Center)矩形(中心)、Oval椭圆、Rotated Rectangle旋转矩形、Annulus环形。
参数:根据选择目标区域类型不同,可供设置的参数也不一样,可能出现的参数有Left左、Top上、Right右、Bottom下、Angle角度、Center X/Y中心点(X、Y)等。
创建好ROI后,在后面的函数中就可以使用已经创建的ROI了,如图4-24所示
图4-24 使用创建的ROI
图像增强部分基础讲述完毕
展开阅读全文