NI图像处理工具包中包含丰富的图像处理函数,包括像素操作、几何变换、图像运算、彩色图像操作与运算、灰度分析与运算等。
此处是对像素操作的相关函数的介绍。
像素操作函数函数选板
如下图所示显示了NI Vision提供的像素操作函数,它们位于LabVIEW的Vision and Motion → Vision Utilities → Pixel Manipulation函数选板中。
Pixel Manipulation函数选板
像素操作函数说明
像素操作相关函数的说明如下图所示:
像素操作函数说明
像素操作函数应用示例
1)像素点操作、行列像素值操作、线段像素值操作以及图像填充操作示例
像素点操作、行列像素值操作、线段像素值操作以及图像填充操作示例
- 首先打开待处理的图像;
- 然后通过IMAQ SetPixelValue函数将坐标为(200,200)的像素值更改为255(白色);
- 再通过IMAQ GetPixelValue函数读取改动后的像素值,以确认像素更改操作的结果;
- 再通过IMAQ SetRowCol函数更改图像中某一行或某一列的数据,由于设置了行参数Row为FALSE,所以该示例中只会使用Pixels(U8)数组中的值更改编号为50的一列数据。程序中Pixels(U8)数组中仅有两个元素,此时,进行替换时只有前两个像素被更改。
- 再通过IMAQ GetRowCol函数读取更改后的第50列像素值,以确认像素更改操作的结果。
- 再通过IMAQ GetPixelLine函数返回(10,10)和(60,60)两点所确定的线段覆盖的像素值;
- 这些返回的像素值被Replace Array Subset 用含有100个元素的子数组替换后,再次作为IMAQ SetPixelLine函数的输入,用于更改线段所覆盖的像素值。以上程序段运行结果如下图(a)所示。
- 再通过IMAQ FillImage函数,用黑色(像素值为0)对图像进行填充,由于使用了图像遮罩,因此只有遮罩图像中非零像素所覆盖的部分会被填充。默认情况下,图像遮罩会被放置在使用它的图像原点,程序并未使用默认值,而是用IMAQ SetOffset将图像遮罩左上角移动到图像中(220,220)像素坐标位置,程序运行结果如下图(b)所示。
示例1运行效果
2)在图像中绘制几何图形、插入文本示例
如下图所示为在图像中绘制几何图形、插入文本的程序示例。
像素几何图像绘制、在图像中插入文本的程序示例
- 首先从文件中读取图像;
- 然后通过IMAQ Draw函数以边框模式在图像中绘制左上顶点为(10,10),右下顶点为(500,500)的白色(像素值为255)矩形;
- 再通过IMAQ Draw Text函数以用户自定义风格在图像中的(80,80)坐标处添加白色的“Draw Text”字符串,这些字符的字体为Arial。
下图中的(a)为以边框模式绘制几何图形的运行结果,(b)为以反转绘图模式运行时的结果,它对所定义的矩形区域内的所有像素进行了反转
示例2运行结果
3)IMAQ ImageToArray、IMAQ ArrayToImage函数
这2个函数比较简单,就是把图像转换为像素数组,以及把像素数组转换为图像,就不再举示例了。
总结
本文主要介绍了NI视觉开发模块中的像素操作相关函数,主要包括:
1)像素点操作、行列像素值操作、线段像素值操作以及图像填充操作;
2)在图像中绘制几何图形、插入文本操作;
3)图像至像素值转换、像素值至图像转换。