LabVIEW中调整图像大小

news/2025/2/24 21:35:36

LabVIEW中调整图像大小

需要调整LabVIEW前面板上图像的大小。可以如何操作实现?

基础版、完全版和专业版的LabVIEW开发环境本身并不包含用以图像处理的内置VI。

但是可以通过调用二维图像控件的缩放因子(Zoom Factor)属性节点可用于调整图像大小。例如,将缩放系数设置为0.5,图像将以原始分辨率一半的大小显示。另外,也可以使用二维图像控件的绘图区域大小(Draw Area Size)属性节点,调整图像控件的大小使其适合图像的尺寸。

此外, 视觉开发模块还为多种摄像头提供图像处理。

调整图像大小以适合图像控件的大小:

为了找出可以使用的最大缩放系数,需要将图片控件的宽度和高度分别除以原始图片的宽度和高度。这两个商中的最小值是可以保证图像完整显示的最大的缩放因子。

下图显示了LabVIEW种实现此过程的前面板和程序框图。

编辑切换为居中

添加图片注释,不超过 140 字(可选)

编辑切换为居中

添加图片注释,不超过 140 字(可选)

调整图像控件的大小以适应图像:

或者,可以通过编程的方式,使用二维图像控件的绘图区域大小( Draw Area Size)属性节点调整图像控件的大小,使其可以完整显示原始分辨率的图像。

下图显示了此过程的前面板和程序框图。

编辑切换为居中

添加图片注释,不超过 140 字(可选)

将已调整尺寸的图像保存到文件:

图像控件中的名为Get Image的调用节点可以返回图像的原始数据。在调整缩放系数得到了重置尺寸的图像后,可以使用此调用节点,将新图像的数据通过写入JPG文件(Write JPG File),写入PNG文件(Write PNG File),或者写入BMP文件(Write BMP File) 等VI分别写入不同文件格式。

但是,此方法可能会导致严重的图像失真。调整图像尺寸,推荐使用LabVIEW视觉开发模块(LabVIEW Vision DevelopmentModule)来实现。有关LabVIEW视觉开发模块(LabVIEWVision Development Module)的更多信息,请参考下一章节的链接。

手动调整图像大小或对图像重新采样(高级):

也可以自己编写算法来调整图像大小,但这可能非常困难。在LabVIEW的完全版和专业版中,可以导入图片并将其转换为像素(Pixmap)。

像素(Pixmap)是二维数值型数组,与图像的各个像素的颜色值相对应。可以通过使用VI:读取JPG文件(Read JPG File),读取PNG文件(Read PNG File),或者读取BMP文件(Read BMP File),对导入LabVIEW的图像进行相应格式的文件读取来完成这种转换。

一旦图片被读入到LabVIEW中,可以使用平化像素图(Unflatten Pixmap VI)将图片信息转化为像素(Pixmap)。这个VI仅支持LabVIEW专业版和完全版,位于编程»图形与声音»图形格式(Functions»Graphicsand Sound»Graphics Formats) 面板中。

将图像转换成像素(Pixmap)后,可以将其视为数组,并且使用数组操作来改变图片信息。此时,需要自己编写算法来操作Pixmap以调整图像大小。请注意,在将图像增大时,不会增加新的图像信息,但是在将图片缩小时,不可避免的会丢失一些数据点,因此需要设计合理的算法,保存最有用的像素点。

例如,平均相邻像素颜色可能导致图像边缘模糊,使得边缘检测更加困难。重新采样图像仍然是一个活跃的研究领域,需要在效率和准确性之间进行权衡。为了获得可预测的结果, Vision Development Module提供了用于调整图像大小或重新采样的工具。

然后,可以使用平化像素图(Unflatten Pixmap VI)将像素Pixmap转换成图像数据,然后使用写入JPG文件(Write JPG File),写入PNG文件(Write PNG File),或者写入BMP文件(Write BMP File)将数据保存到文件中。

AdditionalInformation

第三方软件:

此外,始终可以使用第三方图像软件(如Adobe Photoshop或ACDSee)进行图像处理。一些类似的软件也许提供了ActiveX的接口,这样就可以通过LabVIEW编程对其进行控制。请参考附件的例程。

更详细的内容,参加如下附件的介绍。

LabVIEW、LabVIEW开发、LabVIEW编程、LabVIEW程序

上文中提到的例子和资料,均在word中的附件里,可点击下载。进一步了解,可联系们。

LabVIEW中调整图像大小 - 北京瀚文网星科技有限公司 (bjcyck.com)


http://www.niftyadmin.cn/n/963504.html

相关文章

SQL Server扩展属性的增、删、改、查

使用 sql 语句创建表时,可以使用系统存储过程 sp_addextendedproperty 给字段添加描述说明。 sp_addextendedproperty 语法: 1 sp_addextendedproperty 2 [ name ] { property_name } 3 [ , [ value ] { value } 4 [ , [ level0ty…

Javascript学习笔记——作用域

每个写过程序的人都不会对作用域这个概念陌生,那在这篇文章中就来谈下Javascript的作用域。在Javascript,全局环境本身就一个对象。在浏览器宿主中这个对象是window,而当Javascript用于其它非浏览器的宿主,如嵌入式的环境中&#…

Spring MVC原理及配置详解

【spring】Spring MVC原理及配置1.Spring MVC概述:Spring MVC是Spring提供的一个强大而灵活的web框架。借助于注解,Spring MVC提供了几乎是POJO的开发模式,使得控制器的开发和测试更加简单。这些控制器一般不直接处理请求,而是将其…

LabVIEW在模拟输入通道上同时使用差动(Differential)和RSE(ReferencedSingle Ended)作读取

LabVIEW在模拟输入通道上同时使用差动(Differential)和RSE(ReferencedSingle Ended)作读取 可以在模拟输入通道上开启两个通道,做为差动(Differential)模拟输入的读取,并且使用RSE读…

ASP.NET ViewState详解

ViewState是一个被误解很深的动物了。我希望通过此文章来澄清人们对ViewState的一些错误认识。为了达到这个目的,我决定从头到尾详细的描述一下整个ViewState的工作机制,其中我会同时用一些例子说明我文章中的观点,结论。比如我会用静态控件(…

LabVIEW中前面板的对象为什么是分别更新的?

LabVIEW中前面板的对象为什么是分别更新的? 在前面板(front panel)中创建了几个对象,想让这几个对象同时出现和隐藏。在VI中使用了属性节点(Property Nodes)来设置它们可见或不可见,这些属性节点在代码中是在同一个部分。问题是代码运行时&am…

nginx 配置404错误优雅跳转页面(java环境)

2019独角兽企业重金招聘Python工程师标准>>> 关于404等错误页面的配置,网上有很多,但大多数都是相互抄袭、复制的,比如: http://www.bcty365.com/content-74-630-1.html 如上的配置方法全部都一样,很多博客…

LabVIEW中VISA可执行程序不能在非开发机上运行

LabVIEW中VISA可执行程序不能在非开发机上运行 在自己的LabVIEW开发机上写了一个可以工作的VISA VI,然后把它创建为可执行程序(.exe)用来发布。当我在目标机上运行该可执行程序连接串口时,出现 1073807343的错误。 解答: 对VISA…