使用labview读取一副位图,并进行BCG校准(或修改其BCG)程序解析

进行图像处理第一步肯定就是要读取一副图片,然后再进行图像的BCG校准。

首先讲解一下用到的函数第一个函数为IMAQ Create,位于  视觉与运动--Vision Utilities---Image Management---IMAQ create

函数如图,对于如何看函数功能,还是需要看帮助说明。其帮助说明如下图

Creates a temporary memory location for an image. Use IMAQ Create in conjunction with the IMAQ Dispose VI to create or dispose of NI Vision images in LabVIEW.

这一句为对次函数的功能描述,创建一个为图片创建一个缓冲空间,用于存放该图片,读取图片均是从这个缓冲区读出,若该缓存区的图片发生变化,则读取的图片也发生变化。所以如果要是两个读取同一缓存区的话,就要考虑该缓存区的图片是否发生变化。若要撤销该缓存区,使用IMAQ Dispose VI。这两个一般成对出现。

然后看每个输入参数的功能描述

第一个输入参数为边界大小设定,默认值是3,可以根据需要来调整边界。说明中说,该边界不会随图像存到文件中。

Image Name is the name associated with the created image. Each image created must have a unique name.

第二个输入参数为图像名字,此名字唯一标识该图像。

第三个输入参数为图像的类型,并对图像类型进行了说明,示例中的图像为8bit的位图。若是彩色图像则应选择RGB的图像类型。

(尝试中若输入是一个彩色图像,选择图像类型为8bit时,显示样式为一个灰度图)

 

New Image is the Image reference that is supplied as input to all subsequent (downstream) functions used by NI Vision. Multiple images can be created in a LabVIEW application.

输出参数为新图像,用于为下面的函数提供函数连接。

第二个函数为IMAQ Readfile 位于视觉与运动---Vision Utilities----Files

Reads an image file. The file format can be a standard format (BMP, TIFF, JPEG, JPEG2000, PNG, and AIPD) or a nonstandard format known to the user. In all cases, the read pixels are converted automatically into the image type passed by Image.

该函数的功能为读取一个图像文件,这个文件的格式可以是标准格式(BMP,TIFF,JPEG等),也可以是非标准格式的图像,非标准格式的图像就要根据File Options,进行配置。

下面对每个输入输出参数进行说明,取自函数帮助文档里。

File Path is the complete pathname, including drive, directory, and filename, of the file to read.

第一个参数为File Path,文件路径,即为所要导入图像的路径。

Image is a reference to the image to which data from the image file is applied.

第二个参数为图像的引用,可用于该图像的引用。可以理解为指向该图像的指针。

Load Color Palette? (No) determines whether to load the color table present in the file, if the color table exists. If loaded, this table is read and returned by the output Color Palette. The default is FALSE. 

第三个参数,询问是否加载颜色调色板的数据,如果加载将在输出端子Color Palette输出颜色数组。

File Options is a cluster of user-optional values that you can use to read nonstandard file formats. The structure must be known to the user. 

第四个参数为文件选择项,这个为导入一个自定义的图片时使用,一般我们使用的都是标准的图片,不需要设置该参数。

Color Palette out contains the RGB color table (if the file has one) read from the file when the user passes the value TRUE for the input Load Color Palette? (No).

第一个输出参数,颜色调色板的输出,RGB颜色的表格。在输入端子Load Color Palette? 为真时才有输出。

Image Out is a reference to the destination image. If Image Dst is connected, Image Dst Out is the same as Image Dst. Otherwise, Image Dst Out refers to the image referenced by Image Src

第二个输出参数为图像的输出引用。下面的说明很有用,如果Image Dst这个端子连接,则Image Dst Out的输出引用同Image Dst,否则,指代的是 Image Src的输出引用。比如说下面我们用到的函数就有Image Dst  Image Dst Out端子,如图。当遇到是否要替换掉原始缓存区的图像时需要考虑该点。

File Type out indicates the file type that is read. This string returns an identifier of the file format, which can be BMP, TIFF, JPEG, PNG, or AIPD (internal file format). File Type returns xxx if the file format is unknown. 

第三个输出参数为文件类型输出,比如例子中用到的文件为BMP文件,则输出为BMP。

File Data Type out indicates the pixel size defined in the header for standard image file types. File Options are not necessary for reading standard image files. For other types of image files, the returned values are passed from File Options/File Data Type

第四个输出参数为文件数据类型输出,表示的是定义在标准图像文件类型的像素大小。在程序运行时输出为3不知何意?

 使用这两个函数就可以将图像显示出来,程序和效果如下图。

使用这两个函数就可以将图像读出来了,注意一点是需要在图像显示控件上右击选择snapshot(快照),不然图片运行之后会被清除掉。

下面学习第三个函数IMAQ BCGLookup,该函数位于视觉与运动--Image Processing--IMAQ BCGLookup.

Applies a brightness, contrast, and gamma correction to an image. The correction is performed by computing and applying a lookup table. Brightness, Contrast, and Gamma control the changes made to the transfer function represented by the lookup table.

该函数功能是应用亮度,对比度,伽马校正图像,使用的方法是查表法,增加图像的对比效果
伽玛校正(Gamma Correction),对图象的伽玛曲线进行编辑,以对图象进行非线性色调编辑的方法。
(Gamma Correction,伽玛校正):所谓伽玛校正就是对图像的伽玛曲线进行编辑,以对图像进行非线性色调编辑的方法,检出图像信号中的深色部分和浅色部分,并使两者比例增大,从而提高图像对比度效果。计算机绘图领域惯以此屏幕输出电压与对应亮度的转换关系曲线,称为伽玛曲线(Gamma Curve)。
对比度只是增加画面的黑白对比,也就是说,亮的地方更亮,暗的地方更暗。
下面对其参数进行说明
第一个输入参数为BCG值,BCG分别是brightness,contrast 和gamma的首字母。这个元素为一个簇元素,里面分别是这三个量的值。详细每个量的说明看说明。

Image Src is a reference to the source image.

第二个输入参数为图像的引用。

Image Mask is an 8-bit image that specifies the region of the small image that will be copied. Only pixels in the Image Src (Small) image that correspond to a non-zero pixel in the mask image are copied. All other pixels keep their original values. The entire image is processed if Image Mask is not connected. 

第三个输入参数为图像掩膜,输入为掩膜图像的引用。

图像掩模 。英文: image masking,image mask 。释文: 用选定的图像、图形或物体,对待处理的图像(全部或局部)进行遮挡,来控制图像处理的区域或处理过程。用于覆盖的特定图像或物体称为掩模或模板。光学图像处理中,掩模可以是胶片、滤光片等。数字图像处理中,掩模为二维矩阵数组,有时也用多值图像。数字图像处理中,图像掩模主要用于:①提取感兴趣区,用预先制作的感兴趣区掩模与待处理图像相乘,得到感兴趣区图像,感兴趣区内图像值保持不变,而区外图像值都为0。②屏蔽作用,用掩模对图像上某些区域作屏蔽,使其不参加处理或不参加处理参数的计算,或仅对屏蔽区作处理或统计。③结构特征提取,用相似性变量或图像匹配方法检测和提取图像中与掩模相似的结构特征。④特殊形状图像的制作。

Image Dst is a reference to the destination image.

第四个输入参数为目的图像的引用。经过BCG校准之后的图像存放的缓存区。

Image Dst Out is a reference to the destination image. If Image Dst is connected, Image Dst Out is the same as Image Dst. Otherwise, Image Dst Out refers to the image referenced by Image Src.

第一个输出参数为目的图像的输出。

这个程序为利用上述的三个函数完成图像的BCG校准程序。

程序的显示效果图,通过更改BCG Values来改变对比度,亮度和伽马值。从而增加图像的对比度。
其中不明白的地方就是图像掩膜的使用,继续努力。
对于图像掩膜的含义见网页http://blog.csdn.net/meng4411yu/article/details/10033325

 如何获得8bit的位图,在图像保存时需要选择保存类型,如下图是在画图工具保存一张照片时可以有的图片类型

 

 

转载于:https://www.cnblogs.com/yuexinzheng1989/p/4440040.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/398276.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

实现生成小学四则运算练习题

实现小学四则运算练习题 1.题目要求 本次作业要求两个人合作完成,驾驶员和导航员角色自定,鼓励大家在工作期间角色随时互换,这里会布置两个题目,请各组成员根据自己的爱好任选一题。 题目1: 我们在刚开始上课的时候介绍…

[转] 64位windows下添加postgreSQL odbc数据源

系统环境:windows7 64位 postgreSQL9.0(64bit)ps:安装postgreSQL时确定安装了odbc驱动。问题:点击“开始-》控制面板-》管理工具-》数据源(ODBC)-》用户DSN-》添加”,未出现postgreSQL关联选项。…

Mysql ---Sqlserver数据迁移到Mysql(Mysql建表迁移数据)

1 试用了MysqlWorkBench的数据迁移功能 以为能实现:建立跟Sqlserver一样的表结构和视图的功能,sqlserver的数据迁移到mysql 实际上发现:即使勾选了表和视图,实际上却只能建立表结构。 视图结构,表数据,都没…

vscode 默认初始化_Visual Studio Code(vscode)使用介绍

[TOC]vscode 安装软件直接在vscode官网(https://code.visualstudio.com/)下载安装。建议将下图红框中勾选,安装完成后可通过鼠标右键打开vscode。安装界面使用介绍插件安装安装完成后,左侧栏可以看到不同模块,一开始包…

梯度下降法分析

梯度下降法存在的问题 梯度下降法的基本思想是函数沿着其梯度方向增加最快,反之,沿着其梯度反方向减小最快。在前面的线性回归和逻辑回归中,都采用了梯度下降法来求解。梯度下降的迭代公式为: \(\begin{aligned} \theta_j\theta_j…

PHP程序员的技术成长规划

2019独角兽企业重金招聘Python工程师标准>>> 按照了解的很多PHP/LNMP程序员的发展轨迹,结合个人经验体会,抽象出很多程序员对未来的迷漫,特别对技术学习的盲目和慌乱,简单梳理了这个每个阶段PHP程序员的技术要求&#…

flink 入门

http://ifeve.com/flink-quick-start/ http://vinoyang.com/2016/05/02/flink-concepts/ http://wuchong.me/blog/2016/05/09/flink-internals-understanding-execution-resources/ 要了解一个系统,一般都是从架构开始。我们关心的问题是:系统部署成功后…

mybatis 多租户saas_彻底理解微商城多租户Saas架构设计

原文链接:https://blog.csdn.net/haponchang/article/details/104246317,感谢作者提供这么好的总结!1.具体的SaaS架构必须1.先仔细选择最适合应用程序需求的租户模型,2.需要根据租户模型来选定最终的架构,即应用程序设…

Python模块——subprocess

subprocess模块 通过Python去执行一条系统命令或脚本。 三种执行命令的方法 subprocess.run(*popenargs, inputNone, timeoutNone, checkFalse, **kwargs) #官方推荐 subprocess.call(*popenargs, timeoutNone, **kwargs) #跟上面实现的内容差不多,另一种写法 sub…

异步传参

2019独角兽企业重金招聘Python工程师标准>>> AJAX样板 $.ajax ({ type:"post", url:"要传递参数的地址", data:{id:id}, success:function(val) { …

PHP实现单击“添加”按钮增加一行表单项,并将所有内容插入到数据库中

PHP实现单击“添加”按钮增加一行表单项&#xff0c;并将所有内容插入到数据库中 效果图: htmljquery: <html> <head> <meta http-equiv"content-type" content"text/html;charsetutf-8"> <script language"javascript&qu…

Leetcode按Tag刷题

按照Leetcode的Tag来刷题&#xff0c;从easy到hard刷题 关于如何让Leetcode按难易程度排序&#xff0c;可按以下步骤&#xff1a; 1. 进入Leetcode后&#xff0c;点击code 2.点击code后&#xff0c;可查看所有题目&#xff0c;可看到右下角有Tag标志&#xff0c;选择想要刷的T…

JMeter学习(三十一)Access Log Sampler

前提&#xff1a; 在tomcat\conf\server.xml默认情况下&#xff0c;会有一段代码&#xff1a; <Valve className"org.apache.catalina.valves.AccessLogValve" directory"logs" pattern"%h %l %u %t &quot;%r&quot; %s %b" prefix&qu…

布谷鸟沙盒分析静态文件_“案例沙盒方法”喜提国际商学院协会(AACSB)2019年启发式创新奖...

国际商学院协会(AACSB)于2019年4月14日至16日在英国爱丁堡召开年会&#xff0c;会上公布了2019年Innovation that Inspire的(启发式创新奖)获奖学校及项目。大会共收到800余个项目报名&#xff0c;最终21个项目获此殊荣。新南威尔士大学商学院以创新品牌UNSW Sandbox Method (案…

还有前景吗_喷码机行业还有前景吗 2021喷码机市场份额有多大

喷码机按照其实现的方式不同又分为&#xff0c;压电喷墨技术、压阀式喷墨技术、和热发泡喷墨技术(Thermal Inkjet Technolog)&#xff0c;简称TIJ。根据以上原理可以将喷码机分为&#xff1a;小字符喷码机&#xff0c;大字符喷码机&#xff0c;高清晰喷码机。喷码机是运用带电的…

supervisor 守护多个进程_进程管理工具之Supervisor

相关介绍Supervisor是用Python 开发的一个client/server服务&#xff0c;是 Linux /Unix系统下的一个进程管理工具&#xff0c;不支持Windows系统。它可以很方便的监听、启动、停止、重启一个或多个进程。用Supervisor管理的进程&#xff0c;当一个进程意外被杀死&#xff0c;s…

yaahp层次分析法步骤_综合评价方法之层次分析法,选择再也难不倒你!

在日常生活中&#xff0c;我们常常面临着各种各样的选择。比如你想去北京、上海、广州旅游&#xff0c;但是由于种种原因&#xff0c;你只能选择一个地点去旅游&#xff0c;那么哪一种选择是最优的呢&#xff1f;有没有较为科学的方法帮助我们更好地选择呢&#xff1f;今天&…

TCP/IP TELNET SSH

快速导航 远程登录示例 关于远程登录&#xff1f; 嵌入&#xff1f; 用来控制远程服务器上运行的应用程序字符&#xff1f; 转义&#xff1f; 操作方式&#xff1f; 关于SSH&#xff1f; 远程登录示例 关于远程登录&#xff1f; 网络虚拟终端(Network Virtual Terminal,NVT)通过…

如何用 Python 实现 Web 抓取?

【编者按】本文作者为 Blog Bowl 联合创始人 Shaumik Daityari&#xff0c;主要介绍 Web 抓取技术的基本实现原理和方法。文章系国内 ITOM 管理平台 OneAPM 编译呈现&#xff0c;以下为正文。 随着电子商务的蓬勃发展&#xff0c;笔者近年越来越着迷于比价应用。我在网络上&…

sentinel 不显示项目_Sentinel+Nacos实现资源流控、降级、热点、授权

本文同名博客老炮说Java&#xff1a;https://www.laopaojava.com/&#xff0c;每天更新Spring/SpringMvc/SpringBoot/实战项目等文章资料SentinelNacos 是微服务环境搭建必不可少的两个组件&#xff0c;这里给大家推荐一套微服务教程&#xff1a;SpringCloud微服务电商项目教程…