上位机图像处理和嵌入式模块部署(qmacvisual轮廓查找)

news2024/9/20 4:49:59

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

        前面我们说过,图像的处理流程一般都是这样的,即灰度化-》降噪-》边缘检测-》二值化-》开闭运算-》轮廓检测。虽然前面的几个步骤都可以通过预处理来进行解决,但是最后的轮廓查找还是要自己来处理的。所以,我们正好借着这个机会学下如何用轮廓进行查找图像。

1、创建项目和创建工程

        创建项目和创建流程,这部分大家可以参考之前的文章。

2、创建流程

        整个流程主要有三部分。第一部分是读取图片,第二部分是图像预处理,第三部分是轮廓检测。

3、预处理的流程

        预处理这部分之前已经沟通过,这里可以再复习一下。目前,预处理的流程主要有灰度化、二值化、形态运算和边缘检测四个部分。这四个部分都可以在预处理流程里面一一处理,

4、轮廓检测

        我们前面所作的一切,最终目的都是为了进行轮廓检测而来。一般来说,到了这一部分,图像上会留下很多的小块区域,但是并不是所有的小块区域都是我们感兴趣的部分。所以,这个时候我们就要找到这些轮廓并且通过某些参数把感兴趣的那部分,删选出来。

        第一步,一般先要输入数据来源。这里的数据来源肯定就是预处理的图像结果了。

        第二步添加过滤方式,算法本身自带很多的过滤方式,比如max_area、area、row等等。我们挑一个最简单的就可以了。比如area,

        第三步设置合理的最小面积和合理的最大面积。如果设置过小,那么很多小数据都会被包含进来。我们想要的那个轮廓却被排除在外,就像这样。

        但是如果区域部分面积过大,那么等于什么也没有选中,这也不合适,

        只有我们挑选了合适的参数之后,才能获得自己最终想要的那个结果。比如说,这里我们选择了10000和30000,就可以在众多候选者当中一下子把我们想要的那个轮廓挖掘出来。

        不仅如此,我们还可以看到相关区域的输出信息。这一点可以在输出显示一栏当中看到,

        这些信息可能暂时还看不出用途。在后续的直线拟合、直线测量中还是可以发挥不小的作用。如图所示,它告诉了我们,合格的轮廓有几个,面积多少,重心在什么地方等等。

5、轮廓的重要性

        在图像处理中,轮廓的重要性怎么说都不为过。有了轮廓,我们就能分割物体,就能通过轮廓的一些列属性拆解出我们需要的那些信息,这些属性包括面积、长度、宽度、长宽之比、圆度等等,根据具体的情况进行筛选。如果是比较小的物体,这些小的物体还可以拟合成直线做测量使用,也是非常方便的。所以大家在后面的实践过程中,可以针对轮廓多多练习、多多实践。

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

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

相关文章

Springboot 整合 Knife4j (API文档生成工具)

目录 一、Knife4j 介绍 二、Springboot 整合 Knife4j 1、pom.xml中引入依赖包 2、在application.yml 中添加 Knife4j 相关配置 3、打开 Knife4j UI界面 三、关于Knife4j框架中常用的注解 1、Api 2、ApiOperation ​3、ApiOperationSupport(order X) ​4、ApiImplici…

模态框被div class=modal-backdrop fade in覆盖的问题

模态框被<div class"modal-backdrop fade in">覆盖的问题 起因&#xff1a;在导入模态框时页面被一层灰色的标签覆盖住 F12查看后发现是一个<div class"modal-backdrop fade in"> 一开始以为是z-index的问题&#xff0c;但经过挨个修改后感觉…

SpringBoot项目如何打包成war包,并部署在tomcat上运行

项目场景&#xff1a; 正常情况下&#xff0c;我们开发 SpringBoot 项目&#xff0c;由于内置了Tomcat&#xff0c;所以项目可以直接启动&#xff0c;部署到服务器的时候&#xff0c;直接打成 jar 包&#xff0c;就可以运行了。 有时我们会需要打包成 war 包&#xff0c;放入外…

【漏洞复现】福建科立迅通信指挥调度平台down_file.php sql注入漏洞

漏洞描述 福建科立迅通信调度平台 20240318 以及之前版本存在一个严重漏洞,影响了文件 api/client/down_file.php 的一个未知功能。攻击者可以通过操纵参数 uuid 发起 SQL 注入攻击。攻击者可以远程发起攻击。 免责声明 技术文章仅供参考,任何个人和组织使用网络应当遵守…

ROS机器人入门第一课:ROS快速体验——python实现HelloWorld

文章目录 ROS机器人入门第一课&#xff1a;ROS快速体验——python实现HelloWorld一、HelloWorld实现简介&#xff08;一&#xff09;创建工作空间并初始化&#xff08;二&#xff09;进入 src 创建 ros 包并添加依赖 二、HelloWorld(Python版)&#xff08;二&#xff09;进入 r…

Axure 中继器的Repeater属性的使用

dataCount 中继器当中存在多少条数据&#xff0c;总数。 visibleltemCount 中继器列表中可见项数量&#xff0c;也就是当前页面显示的数量。 pageCount 获取中继器分页的总数量&#xff0c;即能够获取分页后共有多少页。 pageIndex 获取中继器当前显示的页码

易大师B版运势测算系统源码-八字周易运势塔罗-含视频搭建教程

2024最新易大师B版运势测算系统源码-八字周易运势塔罗等测算源码 基于上个版本再次做了数据优化和部分bug修复&#xff0c;青狐独家维护版本。 测算周易系统一直都是很好变现和运营的&#xff0c;玩法操作也比较简单&#xff0c;也很容易被百度收录推广。 大致功能&#xff1a…

关系型数据库mysql(3)索引

目录 一.索引的概念 二.索引的作用 三.创建索引的原则依据 四.索引的分类 五.索引的创建 5.1 普通索引 5.1.1 直接创建索引 5.1.2 修改表方式创建 5.1.3 创建表的时候指定索引 5.2 唯一索引 5.2.1 直接创建唯一索引 5.2.2 修改表方式创建 5.2.3 创建表的时候指…

NX二次开发控制Button的敏感性(是否可用)

一、概述 最近看到一个控制Button灵敏度的功能觉得有点意思&#xff0c;今后的二次开发中避免不了使用&#xff0c;今天做以下笔记&#xff0c;信息来源于【小C-NX】的博客。俗话说的好&#xff0c;三人行必有我师焉。再次致敬伟大的NX二次开发爱好者&#xff0c;思维的碰撞可能…

【性能测试】移动测试md知识总结第2篇:主流移动端自动化测试工具,学习目标【附代码文档】

移动测试完整教程&#xff08;附代码资料&#xff09;主要内容讲述&#xff1a;移动端测试课程介绍&#xff0c;移动端测试知识概览学习主要内容,学习目标,学习目标,1. window安装andorid模拟器。主流移动端自动化测试工具&#xff0c;Appium环境搭建学习目标,学习目标,学习目标…

vue3父子通信、跨层通信

子传父 通过 ref标识 获取真实的 dom对象或者组件实例对象 父组件获取子组件内部属性和方法 顶层组件向任意的底层组件传递数据和方法&#xff0c;实现跨层组件通信 非响应式数据父修改不了子的内容 子组件调用父组件方法

yolov9报错:AttributeError: ‘list‘ object has no attribute ‘view‘的两种解决方法

1. 报错问题 In loss_tal.py: pred_distri, pred_scores torch.cat([xi.view(feats[0].shape[0], self.no, -1) for xi in feats], 2).split( (self.reg_max * 4, self.nc), 1) The error is as follows&#xff1a; AttributeError: list object has no attribute vie…

显卡基础知识及元器件原理分析

显卡应该算是是目前最为火热的研发方向了&#xff0c;其中的明星公司当属英伟达。 当地时间8月23日&#xff0c;英伟达发布截至7月30日的2024财年第二财季财报&#xff0c;营收和利润成倍增长&#xff0c;均超市场预期。 财报显示&#xff0c;第二财季英伟达营收为135.07 亿美…

【题目】【网络系统管理】2019年全国职业技能大赛高职组计算机网络应用赛项H卷

极安云科专注职业教育技能竞赛培训4年&#xff0c;包含信息安全管理与评估、网络系统管理、网络搭建等多个赛项及各大CTF模块培训学习服务。本团队基于赛项知识点&#xff0c;提供完整全面的系统性理论教学与技能培训&#xff0c;成立至今持续优化教学资源与讲师结构&#xff0…

【毕设级项目】基于ESP8266的家庭灯光与火情智能监测系统——文末源码及PPT

目录 系统介绍 硬件配置 硬件连接图 系统分析与总体设计 系统硬件设计 ESP8266 WIFI开发板 人体红外传感器模块 光敏电阻传感器模块 火焰传感器模块 可燃气体传感器模块 温湿度传感器模块 OLED显示屏模块 系统软件设计 温湿度检测模块 报警模块 OLED显示模块 …

Postgresql数据库入门简介

Postgresql入门 1.Postgresql数据库简介 PostgresQL是一个功能强大的开源数据库系统。经过长达15年以上的积极开发和不断改进&#xff0c;PostgreSQL已在可靠性、稳定性、数据一致性等获得了业内极高的声誉。目前PostgreSql可以运行在所有主流操作系统上&#xff0c;包括Linux…

运动想象 (MI) 迁移学习系列 (14) : EEGNet-Fine tuning

运动想象迁移学习系列:EEGNet-Fine tuning 0. 引言1. 主要贡献2. 提出的方法2.1 EEGNet框架2.2 微调 3. 实验结果3.1 各模型整体分类结果3.2 算法复杂度比较3.3 不同微调方法比较 4. 总结欢迎来稿 论文地址&#xff1a;https://www.nature.com/articles/s41598-021-99114-1#cit…

【Git】第一课:Git的介绍

简介 什么是Git? Git是一个开源的分布式版本控制系统&#xff0c;用于跟踪代码的改变和协同开发。它最初由Linus Torvalds为了管理Linux内核开发而创建&#xff0c;现已成为开源软件开发中最流行的版本控制系统&#xff0c;没有之一。Git允许多人同时在不同的分支上工作&…

ubuntu - 编译 linphone-sdk

业务需求需要定制sdk&#xff0c;首先声明我们需要的是在Android4.4上跑的sdk&#xff0c;因此本次编译的sdk最低支持为19&#xff08;不同版本需要的环境不一致&#xff09;&#xff0c;编译过程较容易&#xff0c;难点在于环境配置 环境准备 Ubuntu 18.04.6 android-sdk_r24.…

Python解释器介绍及安装和目录文件说明

什么是解释器&#xff1f; Python 的代码必须要通过解释器才能运行&#xff0c; 比如我们自己书写python代码想要实现最近本的文字打印&#xff1a;print(hello world!)。但电脑不知道你写的这句代码是干什么用的&#xff0c;当有了python解释器后&#xff0c;Python 解释器会把…