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

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

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

1、创建项目和创建工程

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

2、创建流程

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

3、预处理的流程

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

4、轮廓检测

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

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

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

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

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

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

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

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

5、轮廓的重要性

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

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

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

相关文章

LeetCode 面试经典150题 14.最长公共前缀

题目: 编写一个函数来查找字符串数组中的最长公共前缀。 如果不存在公共前缀,返回空字符串 ""。 思路: 代码: class Solution {public String longestCommonPrefix(String[] strs) {if (strs.length 0) {return &…

知攻善防应急靶场-Linux(2)

前言: 堕落了三个月,现在因为被找实习而困扰,着实自己能力不足,从今天开始 每天沉淀一点点 ,准备秋招 加油 注意: 本文章参考qax的网络安全应急响应和知攻善防实验室靶场,记录自己的学习过程&am…

python绘图matplotlib——使用记录1

本博文来自于网络收集,如有侵权请联系删除 使用matplotlib绘图 1 常用函数汇总1.1 plot1.2 legend1.3 scatter1.4 xlim1.5 xlabel1.6 grid1.7 axhline1.7 axvspan1.8 annotate1.9 text1.10 title 2 常见图形绘制2.1 bar——柱状图2.2 barh——条形图2.3 hist——直…

flutter3_douyin:基于flutter3+dart3短视频直播实例|Flutter3.x仿抖音

flutter3-dylive 跨平台仿抖音短视频直播app实战项目。 全新原创基于flutter3.19.2dart3.3.0getx等技术开发仿抖音app实战项目。实现了类似抖音整屏丝滑式上下滑动视频、左右滑动切换页面模块,直播间进场/礼物动效,聊天等模块。 运用技术 编辑器&#x…

git标签的简单操作

创建标签 git tag v1.0 # 对head指向的commit创建标签 git tag v1.1 commit_id # 对指定的commit创建标签 git tag v2.0 -a -m "标签注释" commit_id # 创建注释标签查看标签 git tag -l v1* # 查看标签,匹配v1开头的 git show v2.0 # 查看标签详细信息…

Qt如何重写closeEvent

在 Qt 中,重写 closeEvent 函数是处理窗口关闭事件的一种方式。当你关闭一个 Qt 窗口时,该窗口会接收到一个 QCloseEvent 对象。通过重写窗口类的 closeEvent 函数,你可以自定义窗口关闭时的行为。 下面是一个简单的例子,展示了如…

Netty剖析 - Why Netty

文章目录 Why NettyI/O 请求的两个阶段I/O 模型Netty 如何实现自己的 I/O 模型线程模型 - 事件分发器(Event Dispather)弥补 Java NIO 的缺陷更低的资源消耗网络框架的选型Netty 发展现状Netty 的使用 Why Netty I/O 模型、线程模型和事件处理机制优化&a…

php搭建websocket

1.项目终端执行命令:composer require topthink/think-worker 2.0.x 2.config多出三个配置文件: 3.当使用php think worker:gateway命令时,提示不支持Windows。 4.打包项目为zip格式 5.打包数据库 6.阿里云创建记录 7.宝塔面板新增站点…

Vue3 上手笔记

1. Vue3简介 2020年9月18日,Vue.js发布版3.0版本,代号:One Piece(n 经历了:4800次提交、40个RFC、600次PR、300贡献者 官方发版地址:Release v3.0.0 One Piece vuejs/core 截止2023年10月,最…

网盘——数据库操作

关于网盘的数据库模块,主要有以下几个内容:定义数据库操作类、将数据库操作类定义成单例模式、数据库操作 数据库是在Qt里面,定义成操作类,专门用这个类产生对象,对数据库实现操作,那么我们在产生对象的时…

BMS设计中的短路保护和MOSFET选型(下)

二、MOSFET参数 1、电气参数 (1)VGS :加在栅源两极之间的最大电压,一般为:-20V-+20V。 VGS额定电压是栅源两极间可以施加的最大电压。设定该额定电压的主要目的是防止电压过高导致的栅氧化层损伤。实际栅氧化层可承受的电压远高于额定电压,但是会随制造工艺的不同而改变…

01-机器学习概述

机器学习的定义 机器学习是一门从数据中研究算法的科学学科。 机器学习直白来讲, 就是根据已有的数据,进行算法选择,并基于算法和数据 构建模型,最终对未来进行预测。 机器学习就是一个模拟人决策过程的一种程序结构。 机器学…

Django——forms组件

Django——forms组件 forms组件:通过后端在Django中定义forms类,可以在 html 中动态的生成一个表单;检验用户提交的数据。 在应用中创建一个名为 :forms 的py文件 # 导入 forms 组件 from django import forms# 自定义 forms …

【python】(09)理解Python中的zip()和zip(*iterable)

系列文章回顾 【python】(01)初识装饰器Decorator 【python】(02)初识迭代器Iterator 【python】(03)初识生成器Generator 【python】(04)python中实现多任务并发和并行的区别 【python】(05)如何使用python中的logging模块记录日志信息 【python】(06)理解Python中的 lambda 、…

借记、贷记、来账、往账、挂账

应用场景:支付系统_跨行支付 一、借、贷、借记、贷记 借、贷:复式记账的一种记账符号,和科目结合起来,可以清晰的表示业务级别的资金流动。 贷记业务:指付款方向收款方发起的付款业务,指负债的增加或资产方…

PWM实现电机的正反转和调速以及TIM定时器

pwm.c #include "pwm.h"/* PWM --- PA2 --TIM2_CH3 //将电机信号控制一根接GND,一根接在PA2(TIM2_CH3), 输出PWM控制电机快慢 TIM2挂在APB1 定时器频率:84MHZ*/ void Pwm_Init(void) {GPIO_InitTypeDef GPIO_InitStruct;TIM_TimeBaseInitT…

Django下载使用、文件介绍

【一】下载并使用 【1】下载框架 (1)注意事项 计算机名称不要出现中文python解释器版本不同可能会出现启动报错项目中所有的文件名称不要出现中文多个项目文件尽量不要嵌套,做到一项一夹 (2)下载 Django属于第三方模块&#…

张宇高数一学习笔记-1-第一讲-函数极限与连续(1)

1、函数的概念与特性 1.1、函数 1、y才是x的函数,而f()是加工法则。 2、定义域是基于加工法则f()存在的,也就是说加工法则f()对()内数据的限制范围就是定义域。而 3、自变量x的取值范围来源于:定义域对()内的含x表达式的限制下得出的x的取值…

【C2架构】

C2架构 C2 架构也就可以理解为,恶意软件通过什么样的方式获取资源和命令,以及通过什么样的方式将数据回传给攻击者 使用的通信方式: 传输协议层 TCP、UDP 网络协议层 icmp(ping) 应用协议层 HTTP/HTTPS、FTP、DNS、S…

[深度学习] 常见名称概念

SOTA SOTA是指"State-of-the-art"的缩写,意为"最先进的技术"。SOTA是指在某个领域或任务中,当前被认为是最好的技术或模型。随着技术的不断发展和进步,SOTA会随之变化。对于机器学习和人工智能领域而言,SOTA…