1、像素操作
2、灰度图像操作
2.1、图像平移、旋转
2.2、图像缩小、放大
2.3、图像对称变换
2.4、3D可视化
3、灰度图像运算
3.1、图像平均降噪
3.2、提取夜视仪闪光故障点
3.3、人体骨骼图像增强
完成机器视觉系统的搭建、校准并且确认其可以采集检测目标的图像后,就可以集中精力开发各种图像分析、处理以及模式识别算法。为了设计准确性和鲁棒性都较高的算法,并提高其执行速度,一般需要事先对整幅图像或部分像素进行操作,使图像尺寸或形状更适合计算机处理。某些时候还要对图像进行算术和逻辑运算,以消除噪声或提高图像的对比度。这些前期的图像操作或运算不仅会在空间域增强图像,还能极大地提高后续算法的执行速度及其有效性。
像素操作(Pixel Manipulation)通常用在各种图像处理算法之前,为算法的顺利执行做准备。像素操作具体包括:读取或设置图像中的某个像素值、更改某个区域的所有像素值、逐行或逐列读取或更改像素值等。下图显示了NI Vision提供的像素操作函数,它们位于LabVIEW的视觉与运动→Vision Utilities→Pixel Manipulation函数选板中。
函数的说明和使用可参见帮助文档:
使用LabVIEW更改单点像素值、行列像素值、线段所覆盖像素值以及图像填充的实际例子,加深对像素操作的理解和应用。
程序设计思路如下所示:
程序设计如下所示:
程序运行效果如下所示:
程序下载请参见:https://download.csdn.net/download/m0_38106923/18397695
图像操作(Image Manipulation)是指对图像执行的平移(Shift/Translation)、旋转(Rotate)、缩放(Zoom)、拉直(Unwrap)等几何变换以及重新采样、对称(Symmetry)变换、提取(Extract)图像某一区域的操作等。大多数图像操作函数并不直接改变图像的像素值,而只是在空间上对它们进行重新组织或插值。
下图显示了NI Vision提供的图像操作函数,它们位于LabVIEW的视觉与运动→Vision Utilities→lmage Manipulation函数选板中。
函数的说明和使用可参见帮助文档:
图像平移是指将图像中所有的点都沿着水平或垂直方向移动一定的距离。若假定像素的初始坐标为(x,yo),经平移后其对应的坐标为(x,yt),图像在x、y方向的平移量分别为xoffset和yoffset,则有:
图像旋转是指图像像素以某一点为旋转点,沿逆时针(角度为正)或顺时针(角度为负)转动一定角度。多数情况下,图像旋转操作都以图像中心点作为旋转点。和图像平移类似,旋转操作也会引起图像大小的改变。图像中部分像素可能会移动到原图范围之外,此时可以丢弃这部分像素,以保持原图的尺寸,也可以扩展图像尺寸以匹配旋转后的图像,如下图所示:
接下来使用LabVIEW实现图像平移和旋转,程序设计思路如下所示:
程序设计如下所示:
由程序的运行结果可以看出,当选择保持图像尺寸不变时,旋转到源图像之外的数据会被丢弃;而当选择保留所有图像数据时,旋转后的图像尺寸会比源图像尺寸大。效果如下所示:
程序下载请参见:https://download.csdn.net/download/m0_38106923/18398159
使用IMAQ Resample、IMAQ Expand和IMAQ Extract 2实现图像缩放功能。程序设计思路如下:
程序设计如下所示:
程序运行效果如下所示:
程序下载请参见:https://download.csdn.net/download/m0_38106923/18400463
Nl Vision使用IMAQ Symmetry实现各种类型的图像对称变换。开发人员只需根据需要选择对称变换的类型,而无须关心各种矩阵计算的细节,即可得到想要的结果。需要注意的是,主次对角线对称操作仅适用于长、宽相等的图像。
程序设计如下所示:
程序运行效果如下所示:
程序下载请参见:https://download.csdn.net/download/m0_38106923/18400500
Nl Vision还提供了一个以3D方式显示灰度图像数据的图像显示函数IMAQ 3DView VI。它在显示图像数据时,用OXY平面表示像素位置坐标,而用Z轴表示像素,程序实现如下所示:
程序运行效果如下所示:
程序下载请参见: https://download.csdn.net/download/m0_38106923/18400526
图像运算是指对一幅或多幅图像执行加(Add)、减(Subtract)、乘(Multiply)、除(Divide)等代数运算,与(And)、或(Or)、非(Not)、异或(Xor)等逻辑运算,两幅图像的比较(Compare)以及求模(Modulo)、求差值的绝对值(AbsoluteDifference)等操作的过程。它们不仅可用于图像采集过程中的延时比较、图像背景中的光线偏移矫正、相互连接或相互交叠图像目标的识别以及多幅图像与某一图像模型之间的对比等,还可用于图像的阈值化或遮罩处理、亮度或对比度的调节等。此外,通过对多幅相同场景的图像求平均,还能实现图像的滤波功能。
下图显示了Nl Vision提供的图像运算函数,它们位于LabVIEW的视觉与运动→lmageProcessing→Operator函数子选板中。
函数的说明和使用可参见帮助文档:
图像运算过程遵循以下规则:
1、两幅灰度图像进行运算时,图像中的像素逐―进行点对点运算。
2、一幅灰度图像与某一常量进行运算时,图像中的所有像素均与该常量进行该运算。
3、当RGB彩色图像与灰度图像或某一常量进行运算时,将灰度图像或常量与RGB图像的每一分量进行运算。
4、两幅RGB图像进行运算时,对应分量进行运算。
此外,当参与运算的两幅图像类型不同时,运算后所得图像的类型将与位深度较大的图像类型保持一致。例如,类型为U8的灰度图像与类型为I16的灰度图像相加时,所得到的图像类型为I16;当某一灰度图像减去某一常量时,所得图像的类型仍为灰度图像;U8类型的灰度图像或常量与RGB32彩色图像进行运算时,得到的图像仍为RGB32彩色图像;RGB32与RGB64图像进行运算时,将得到类型为RGB64的图像。
图像加法运算最常见的用途是实现图像的叠加功能。利用此功能,可以将不同图像中的目标合并到同一图像中。图像和一个常量相加可以提高图像的整体亮度。此外,利用图像相加运算可以实现图像的空间滤波功能。具体来说,可以对同一场景的多幅图像求平均,以便有效地降低加性(additive)随机噪声。对于经过长距离模拟通信方式传送的图像(如航天器传回的星际图像),这种处理必不可少。
接下来使用图像加法运算实现图像平均降噪,程序设计思路如下所示:
程序实现如下所示:
运行程序并观察程序运行过程中图像的显示,不难发现经平均计算后的图像明显比原图像含有较少的噪声,效果如下所示:
程序下载请参见:https://download.csdn.net/download/m0_38106923/18400546
图像相减运算又称为图像差分运算,常用于去除不需要的叠加性图案或检测场景的变化或运动目标。在工业环境下,如果图像背景可控,差分运算和阈值化处理结合能快速有效地建立机器视觉系统。如果将同一景物在不同时间拍摄的图像或同一景物在不同波段的图像相减,即可获得图像的差影。图像差影可用于动态监测、运动目标的检测和跟踪、图像背景的消除及目标识别等。差影技术还可以用于消除图像中不必要的叠加图像,将混合图像中重要的信息分离出来。
接下来使用图像相减运算实现提取夜视仪闪光故障点,士兵常用夜视设备在夜间进行侦察瞄准等活动,为避免出现误判,必须对设备进行稳定性试验,确保生产设备的可靠性,即正常工作环境下,输出的图像能在足够长的时间内保持稳定,且无黑斑或闪光出现。为了提取闪光点,程序在滤除两幅图像中的高频噪声后将它们相减。为了便于观察,程序还使用IMAQ Inverse对计算结果中的图像灰度进行了反转。
程序实现如下所示:
效果如下所示:
程序下载请参见: https://download.csdn.net/download/m0_38106923/18400570
图像的乘法和除法运算可用来扩展或压缩图像的灰度级,实现灰度级变换。常见的用法是图像与一个常数相乘或相除,以调整图像灰度。
乘法运算也可用来遮住或提取图像的某些部分,其典型应用是通过遮罩提取图像。提取时,对于需要保留下来的区域,掩模图像的值置为1;而在需要被抑制掉的区域,掩模图像的值置为0。此外,由于时域的卷积和相关运算对应于频域的乘积运算,因此乘法运算也被用作一种技巧来实现卷积或相关处理。
图像的除法运算可被看作一幅图像取反后与另一幅图像相乘的结果,它不但可用于改变图像的灰度级,还能用来检测图像间的差别。图像绝对值运算计算的是两幅图像中对应像素相减后的绝对值,而除法运算则计算对应像素的比率变化,因此也常称图像除法为“比率变换”。
接下来使用乘法运算增强人体骨骼图像,原图像中的人体骨骼很难看清,有必要将图像和一个常量相乘以扩展其灰度级,从而增强图像的亮度和对比度。程序设计思路如下所示:
程序实现如下所示:
效果如下所示:
程序下载请参见: https://download.csdn.net/download/m0_38106923/18400585