TA的每日心情 | 开心 昨天 21:00 |
---|
签到天数: 3412 天 连续签到: 14 天 [LV.Master]2000FPS
|
注册登陆后可查看附件和大图,以及购买相关内容
您需要 登录 才可以下载或查看,没有账号?注册会员
x
LabVIEW VISION白底Mask图像处理方法
在LabVIEW VISINO中,我们经常会用到Mask功能,即将不需要的区域屏蔽掉。Mask的基本原理是,原始图像与Mask图像进行与操作,Mask中为0值,则原始图像中变为0,而Mask中非0值,则原始图像保留原始图像中的值。在ROItoMask构造Mask图像时,默认的是填充值为255,背景值为0,这样就是Mask区域内的保留原值,而区域外为背景全黑。当然也可以反过来,填充值为0,背景值为255,这样就是Mask区域外的值保留,而区域内的值为背景全黑。
但是我们可以看到,无论是哪种方式,其背景总是为0全黑的。只是看背景的位置在哪里的问题。那么如果我们需要的是背景为白色255,而目标保留不变时,又该如何操作呢?这个在NI的现有函数中,是没有现成的函数的。但是,我们可以根据Mask的原理,来自己构造一个白底的mask功能。
在Mask原理中,是将Mask中为0值的原图全部值为0,而非0值保留原值。而我们的目标是将背景表现为255,而目标保留。也就是说,Mask中的背景应该是全部为255,而不管原始图像中为多少,都要变成255;而Mask中框中的范围内则保留原值。这里我们可以使用一个加法操作,将Mask背景设置为255,而填充区域设置为0。这样使用加法操作后,背景区域相当于所有值+255后全变成255(这里仅针对8位图),而对于范围区域则所有值+0后保持原值不变。从而达到了我们希望的白色背景的Mask效果。
附件例子为LabVIEW2015SP1+VISION2018开发:
白底Mask.vi
(35.18 KB, 下载次数: 104, 售价: 1 元)
|
|