上位机图像处理和嵌入式模块部署(qmacviusal边缘宽度测量)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】

        前面有一篇文章,我们了解了测量标定是怎么做的。即,我们需要提前知道测量的方向,灰度的方向,实际的长度这些参数,才能最终通过算法求得水平方向和垂直方向的像素宽度是多少。那求得这些数值,用途是什么?本质上,还是要进行距离的测量。所以,今天正好学习下边缘宽度是如何测量。

1、创建项目和创建流程

        第一步和之前一样,需要创建项目和创建流程。

2、打开图像

        这次测试的图片使用的是生鱼骨。它的位置在TestImg目录下面。需要打开的话,直接把【获取图像】插件从树形窗口拖到流程窗口,双击打开配置一下即可。不出意外的话,效果应该是这样的,

3、边缘宽度测量

        需要测量鱼骨的宽度,直接选用【边缘宽度测量】这个插件就可以了。它的位置,位于【几何测量】子目录下面。我们用鼠标直接将控件拖到流程窗口即可。双击一下,开始配置,

        控件配置的内容不算多,主要是三部分。第一,对输入图像进行配置,即我们测量的图像是哪一个。第二,配置ROI区域,即测量图像中的哪一个部分。这里,我们选用的ROI工具是矩形,本身可以旋转。在配置ROI的时候,大体上只要覆盖住被测量的物体就可以了,不需要过分垂直,或者是过分水平。第三,对参数进行配置。配置的参数总共有四个,即灰度方向、边缘强度、分割数量和剔除距离。

        所有这些都配置好了之后,单击执行按钮,就可以在图像上看到测量的效果。如果希望获得具体的测量数值,那么在截图的左下角会有一排打印,提示我们当前边缘宽度的平均像素是多少。有了这么一个数值,再加上之前标定获得的水平像素宽度,这样物体的水平宽度是多少就可以求解出来了。

4、其他鱼骨的宽度

        测量好一个鱼骨之后,可以继续测量一下其他的鱼骨,继续加深一下印象,熟练掌握配置方法和操作流程。

5、整体测试

        实际测试的时候我们一般还会添加一个图像显示,这样显得整个的测试流程比较完整。配置好了之后,整体其实是由三部分组成的,分别是获取图像、边缘宽度测量、图像显示。当然,正如前面所说,这里获得数据只能是图像像素的宽度,如果希望获得详细的cm、mm宽度信息,一定要做一下测量标定,拿到标定值之后才可以计算获得结果。当然,需要计算的话,一般可以通过脚本来进行解决。最终脚本计算好之后,通过串口或者是网络送出去就可以了。

        当然,还有一种应用场景,就是产品等级分类,这种有点类似于评估等级分类一样。比如说大一点的苹果是一级苹果,小一点的苹果是二级苹果,最普通的苹果可以做二次加工使用。因为整体来说,生鲜苹果最能卖上价格,只有卖不上价格的水果才会考虑二次加工。那么测量,就可以帮助我们很容易做到这一点。

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

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

相关文章

“省钱有道”的太平鸟,如何真正“高飞”?

衣食住行产业中,服装品类消费弹性较大、可选属性较强,其发展可以显著反映当前的经济温度。 根据国家统计局数据,2023年1-12月,我国限额以上单位服装类商品零售额累计10352.9亿元,同比增长15.4%,增速比2022…

Python框架下的qt设计之JSON格式化转换小程序

JSON转换小程序 代码展示: 主程序代码: from PyQt6.QtWidgets import (QApplication, QDialog, QMessageBox )import sys import jsonclass MyJsonFormatter(jsonui.Ui_jsonFormatter,QDialog): # jsonui是我qt界面py文件名def __init__(self):super()…

【HTML】注册页面制作 案例二

(大家好,今天我们将通过案例实战对之前学习过的HTML标签知识进行复习巩固,大家和我一起来吧,加油!💕) 案例复习 通过综合案例,主要复习: 表格标签,可以让内容…

【Go】十七、进程、线程、协程

文章目录 1、进程、线程2、协程3、主死从随4、启动多个协程5、使用WaitGroup控制协程退出6、多协程操作同一个数据7、互斥锁8、读写锁9、deferrecover优化多协程 1、进程、线程 进程作为资源分配的单位,在内存中会为每个进程分配不同的内存区域 一个进程下面有多个…

集合的学习

为什么要有集合:集合会自动扩容 集合不能存基本数据类型(基本数据类型是存放真实的值,而引用数据类型是存放一个地址,这个地址存放在栈区,地址所指向的内容存放在堆区) 数组和集合的对比: 集…

Flutter 开发学习笔记(3):第三方UI库的引入

文章目录 前言初始化程序Icon导入如何导入 Toast消息提示框引入简单封装简单使用 Charts图表导入新建pages文件夹存放page简单代码实现效果 总结 前言 Flutter已经发布了有10年了,生态也算比较完善了。用于安卓程序开发应该是非常的方便。我们这里就接入一些简单的…

golang语言系列:Web框架+路由 之 Gin

云原生学习路线导航页(持续更新中) 本文是golang语言学习系列,本篇对Gin框架的基本使用方法进行学习 1.Gin框架是什么 Gin 是一个 Go (Golang) 编写的轻量级 http web 框架,运行速度非常快,如果你是性能和高效的追求者…

【JavaEE】_Spring MVC项目上传文件

目录 1. 文件上传具体实现 2. 保存文件 1. 文件上传具体实现 .java文件内容如下: package com.example.demo.controller;import com.example.demo.Person; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.Multip…

day4|gin的中间件和路由分组

中间件其实是一个方法, 在.use就可以调用中间件函数 r : gin.Default()v1 : r.Group("v1")//v1 : r.Group("v1").Use()v1.GET("test", func(c *gin.Context) {fmt.Println("get into the test")c.JSON(200, gin.H{"…

特征融合篇 | YOLOv8改进之将Neck网络更换为GFPN(附2种改进方法)

前言:Hello大家好,我是小哥谈。GFPN(Global Feature Pyramid Network)是一种用于目标检测的神经网络架构,它是在Faster R-CNN的基础上进行改进的,旨在提高目标检测的性能和效果。其核心思想是引入全局特征金字塔,通过多尺度的特征融合来提取更丰富的语义信息。具体来说,…

FPGA + 图像处理 (二) RGB转YUV色域、转灰度图及仿真

前言 具体关于色域的知识就不细说了,简单来讲YUV中Y通道可以理解为就是图像的灰度图,因此,将RGB转化为YUV是求彩色图的灰度直方图、进行二值化操作等的基础。 HDMI时序生成模块 这里先介绍一下仿真时用于生成HDMI时序,用这个时…

自贡市第一人民医院:超融合与 SKS 承载 HIS 等核心业务应用,加速国产化与云原生转型

自贡市第一人民医院始建于 1908 年,现已发展成为集医疗、科研、教学、预防、公共卫生应急处置为一体的三级甲等综合公立医院。医院建有“全国综合医院中医药工作示范单位”等 8 个国家级基地,建成高级卒中中心、胸痛中心等 6 个国家级中心。医院日门诊量…

【Docker】搭建便捷的Docker容器管理工具 - dockerCopilot

【Docker】搭建便捷的Docker容器管理工具 - dockerCopilot 前言 本教程基于绿联的NAS设备DX4600 Pro的docker功能进行搭建。前面有介绍过OneKey,而dockerCopilot便是OneKey的升级版,作者对其进行了重新命名,并且对界和功能都进行了全面的优…

负载均衡集群

一、集群的基本原理 集群:数据内容是一致的,集群可以被替代 分布式:各司其职,每台服务器存储自己独有的数据,对外作为单点被访问是访问整体的数据; 分布式是不能被替代的;分布式分为MFS、GFS、…

结构体内存对齐和位段(重点)!!!

乐观学习,乐观生活,才能不断前进啊!!! 我的主页:optimistic_chen 我的专栏:c语言 点击主页:optimistic_chen和专栏:c语言, 创作不易,大佬们点赞鼓…

数据结构栈和堆列

目录 栈: 栈的概念: 栈的实现: 栈接口的实现: 1.初始化栈: 2.入栈: 3.出栈: 4. 获取栈顶元素: 5.获取栈中有效数据的个数: 6.检测栈是否为空,如果为…

Java代码示例:演示多态特性及子类方法重写(day17)

java代码里面体现多态的特点: 第一步创建一个父类father, 然后创建子类subclasses, 最后创建一个DemoMulti, 上面的父类特有的方法不是私有的,因此子类能够继承。 新建一个父类方法Father 创建子类subclasses 在下面的代码中…

LabVIEW深度学习

目录 一、配置环境1.1、显卡选择1.2、下载显卡驱动1.3、下载并安装Anaconda1.4、配置Anaconda软件包下载服务器1.5、配置虚拟环境tf_gpu1.6、安装vscode1.7、安装tensorflow1.8、下载安装Git1.9、安装TensorFlow Object Detection API框架1.10、安装依赖的python软件包1.11、配…

Python 简单使用 RabbitMQ

一、安装 pip install pika 二、推送消息到队列中 执行pythone方法 import pika import time# 用户名和密码 user_info pika.PlainCredentials(admin,admin)# 连接服务器上的rabbitMQ服务 connection pika.BlockingConnection(pika.ConnectionParameters(127.0.0.1, 5672,…

在开源的基础上构建 AI 需要一种全新的应用程序安全方法

人工智能已经从科幻小说中涌现出来,进入了我们的日常生活。 在开源软件(OSS)模型的支持下,人工智能革命正在加速。这些模型是专为开发 AI 而制作的复杂开源代码包,使组织能够高效、大规模地部署 AI 模型。 虽然大多数…