石鑫华视觉论坛微信公众号:石鑫华视觉

 找回密码
 注册会员
查看: 34|回复: 0

[原创] LabVIEW Vision菜鸡互啄:使用生产者消费者连续采集处理图像

[复制链接]
  • TA的每日心情
    无聊
    昨天 11:09
  • 签到天数: 3178 天

    连续签到: 48 天

    [LV.Master]2000FPS

     楼主| 发表于 2024-3-25 09:24:48 | 显示全部楼层 |阅读模式 来自:广东省东莞市 电信

    注册登陆后可查看附件和大图,以及购买相关内容

    您需要 登录 才可以下载或查看,没有账号?注册会员

    x
    LabVIEW Vision菜鸡互啄:使用生产者消费者连续采集处理图像
    在前一视频“LabVIEW Vision生产者消费者采集处理图像”的基础上,基于连续采集和图像处理的过程,创建可连续采集图像+处理图像的自动运行事件响应。点击自动运行按钮后,响应按钮事件,自动运行入队列,在自动运行的消费者中实现连续的采集图像+处理图像的过程。
    image1.png
    LabVIEWVision生产者消费者连续处理图像视频号扫码观看
    image2.png
    初始化消费者
    初始化过程中,创建必要的图像缓存,这里因为只是做简单的彩色图像变成灰度图像,所以创建了两个缓存,一个是用于彩色图像的,一个是用于灰度图像的。图像缓存可以考虑引用状态机。
    image3.png
    打开相机生产者和消费者
    相机相关的功能,也可以考虑使用状态机,会更方便一些。
    image4.png
    采集单帧生产者和消费者
    单帧采集功能,每点击一次布尔按钮,则只采集一幅图像。这里的单帧,不同于Snap快照,仍然使用的是GrabGet Image函数。
    image5.png
    连续采集生产者消费者
    连续采集则添加了一个While循环以实现连续执行。While循环是否停止,则由连续采集布尔按钮来确认。连续采集布尔按钮的机械动作设置成释放时转换。转换的新值为真时,则连续采集入队列去执行连续采集的消费者。而转换的新值为假时,则不执行连续采集的过程。
    image6.png
    处理图像生产者消费者
    处理图像功能,只是简单的使用了彩色图像变成灰度图像。可以在这里实现更多更复杂的功能。本示例未实现连续的采集图像-处理图像的过程。在后续的教程中再介绍。
    image7.png
    自动运行生产者消费者-正常采集图像时
    image8.png
    自动运行生产者消费者-相机超时等出错时
    自动运行的过程和连续采集的过程非常类似,在连续采集的基础上来实现的。直接先复制连续采集相关的生产者和消费者,然后做修改即可。自动运行时,需要做采集结果做一下判断,如果正常采集到了图像,那就做后续的图像处理。如果没有正常采集图像,例如相机打开了触发功能后输出了超时错误,或者是运行时相机掉线等出错,这时没有正常采集到图像时,是应该做一个基础判断的,出错后不应该再做图像处理的过程了。
    image9.png
    停止生产者消费者
    停止生产者消费者的实现,没有使用元素入队列,而是直接使用释放队列后生成的错误来实现的。当然,也可以在停止事件中添加元素入队列,将停止时需要释放的硬件资源、软件资源等放到相应的消费者中来处理,这时需要注意LabVIEW并行运行时的竞态关系,在释放队列前,最好添加一个延时以保证停止消费者能正常执行而不是先执行错误条件结构。

    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 注册会员

    本版积分规则

    LabVIEW HALCON图像处理入门教程(第二版)
    石鑫华机器视觉与LabVIEW Vision图像处理PDF+视频教程11种全套
    《LabVIEW Vision函数实例详解》教程-NI Vision所有函数使用方法介绍,基于NI VISION2020,兼容VDM21/22/23
    LabVIEW图像处理教程
    机器视觉商城淘宝店铺
    视觉论坛充值赞助方法

    QQ|石鑫华视觉论坛 |网站地图

    GMT+8, 2024-4-21 09:48

    Powered by Discuz! X3.4

    © 2001-2024 Discuz! Team.

    快速回复 返回顶部 返回列表