上位机图像处理和嵌入式模块部署(qmacvisual区域提取)

news/2024/7/21 4:56:22 标签: 图像处理, 人工智能

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

        在图像处理中,有两部分比较重要,一个是区域分割,一个是区域提取。区域分割,比较好理解,就是把图像中重要的内容彼此分割开。这里面就涉及到色彩提取、边缘提取、二值化、膨胀、腐蚀等操作。甚至于说,如果软件算法不满足区域分割要求,还需要光源的配合。有了区域分割之后,接下来就是区域提取,这部分也比较重要。

        所谓的区域提取,就是通过自定义一些过滤条件,把我们感兴趣的区域提取出来。目前opencv里面SimpleBlobDetector自带的提取条件比较少,主要包括了面积、灰度、圆度、惯性和凸度这五个维度。但是真正的商用软件halcon,这方面的过滤标准要多的多。大家在软件开发的时候,不妨多看看halcon上面提取的条件有哪些。

1、五个维度的高低标准

        关于opencv提供的这五个维度,它的标准是什么样的。其实opencv官方已经提供了相应的测试范例,我们直接看这个测试范例就可以学习了。

        如图所示,这5个标准,从上到下依次是面积、灰度阈值、圆度、惯性、凸度。面积比较好理解,就是从小到大的顺序。灰度也不难,就是从灰到黑的程度。圆度的话,就是从有棱有角到边缘光滑的过程。惯性有点复杂,简单看,可以认为是直线到圆的过程。凸度可以反过来看,凹进去部分越少,那么凸度就越高。

2、创建项目和创建流程

        熟悉了上面的知识点,接下来就可以开始准备实验操作了。首先,还是要创建项目、创建流程。

3、引入区域提取插件

        区域提取的插件位于【检测识别】-》【斑点分析】,直接用鼠标把它拖到流程下面即可。双击之后,不出意外我们就可以看到这样的窗口,

        需要配置的内容主要就是输入图像、检测条件、具体条件的参数。检测条件可以单选,或者是多选 。具体条件的参数,大家根据自己的需求,灵活做出选择。在上面的tab页中,还有一个ROI配置,这部分也可以搭配着灵活使用。

4、整体流程的设计

        区域选择还是比较简单的。我们在实际测试的时候,一般还要搭配上获取图像、图像显示,这样效果比较好一点。

        另外,还想表达的一点,就是opencv自身提供的检测条件远远不能满足需求,很多时候需要我们自己手写代码筛选出合格的区域。这里的条件比如长度、宽度、长宽之比、周长、具体圆度的系数、颜色区间、区域的roi位置、区域占整幅图像的比例等等。所以,实际情况要比opencv提供的case要复杂得多,大家可以参考opencv的做法,对于特定的场景,自己去写代码筛选就可以了。本身opencv提供的方法,仅仅是起了一个抛砖引玉的作用。


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

相关文章

【3D-GS】Gaussian Splatting SLAM——基于3D Gaussian Splatting的全网最详细的解析

【3D-GS】Gaussian Splatting SLAM——基于3D Gaussian Splatting的定SLAM 3D-GS 与 Nerf 和 Gaussian Splatting1. 开山之作 Nerf2. 扛鼎之作 3D Gaussian Splatting2.1 什么是3D高斯?高斯由1D推广到3D的数学推导2.2 什么是光栅化?2.3 什么是Splatting?2.4 什么是交叉优化?…

Python 基于 OpenCV 视觉图像处理实战 之 OpenCV 简单实战案例 之八 简单水彩画效果

Python 基于 OpenCV 视觉图像处理实战 之 OpenCV 简单实战案例 之八 简单水彩画效果 目录 Python 基于 OpenCV 视觉图像处理实战 之 OpenCV 简单实战案例 之八 简单水彩画效果 一、简单介绍 二、简单图像浮雕效果实现原理 三、简单水彩画效果案例实现简单步骤 四、注意事项…

什么是计算机视觉?计算机视觉:从基础到前沿

引言 计算机视觉,作为人工智能的一个重要分支,致力于赋予机器“看”的能力——即从图像或视频中理解和解释视觉信息的能力。这项技术的发展为自动驾驶汽车、面部识别、机器人导航等多种应用开辟了道路,正在逐步改变我们的工作和生活方式。本…

深度学习基础模型之Mamba

Mamba模型简介 问题:许多亚二次时间架构(运行时间复杂度低于O(n^2),但高于O(n)的情况)(例如线性注意力、门控卷积和循环模型以及结构化状态空间模型(SSM))已被开发出来,以解决 Transformer 在长…

更新一条SQL的执行流程

在 MySQL中,条更新 SQL 语句执行的过程通常包括以下主要步骤: 1.客户端发送请求: 客户端应用程序(如数据库连接器或应用程序)构建一条 UPDATE SQL 语句,并将其发送到 MySOL 服务器端。 2.查询解析和优化: MySQL 服务器接收到请求后,先进行语法…

基于k8s的web服务器构建

文章目录 k8s综合项目1、项目规划图2、项目描述3、项目环境4、前期准备4.1、环境准备4.2、ip划分4.3、静态配置ip地址4.4、修改主机名4.5、部署k8s集群4.5.1、关闭防火墙和selinux4.5.2、升级系统4.5.3、每台主机都配置hosts文件,相互之间通过主机名互相访问4.5.4、…

使用Node.js常用命令提高开发效率

Node.js是一个基于Chrome V8引擎的JavaScript运行时环境,广泛用于构建服务器端应用程序和命令行工具。Node.js提供了丰富的命令和工具,可以帮助开发者更高效地开发应用程序。在日常开发中,除了Node.js本身的核心功能外,npm&#x…

JDK和IntelliJ IDEA下载和安装及环境配置教程

一、JDK下载(点击下方官网链接) Java Downloads | Oracle 选择对应自己电脑系统往下拉找到自己想要下载的JDK版本进行下载,我下的是jdk 11,JDK有安装版和解压版,我就直接下安装版的了。 .exe和.zip的区别&#xff1a…