上位机图像处理和嵌入式模块部署(qmacvisual拟合圆和拟合椭圆)

本文主要是介绍上位机图像处理和嵌入式模块部署(qmacvisual拟合圆和拟合椭圆),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

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

        前面我们学习了拟合直线,今天继续学习下拟合圆和拟合椭圆。其实除了最后一步不同,两者的逻辑是差不多的。一般都是,读取图片-》灰化-》轮廓筛选-》拟合圆(拟合椭圆)-》显示图形。所以今天的学习更多的是一种复习和总结。

1、创建项目和创建流程

        第一步还是创建项目和创建流程,这是所有工作开展的基础。

2、读取图像

        暂时我们还没有camera设备,所以暂时先用图片进行测试。读取图像的插件位于【图像处理】-》【获取图像】,所以这部分直接copy过来,配置一下即可。

3、图像灰化

        之前的图像是彩色的。所以,这边还需要利用【预处理】插件进行一个灰化的操作。插件位于【图像处理】-》【预处理】。拖过来之后,我们需要手动添加图像灰度化功能。添加好,并且运行之后,就可以看到黑白图片了。

4、轮廓提取

        从图片上可以看出,图像中是一个一个分离的小块。大部分小块都是离散的,部分小块是黏在一起的。对于黏在一起的小块,我们需要用某个属性把他们剔除出去。这里,我们选用了面积这个用的比较多的数值。经过选择后,只剩下一部分点参与最终的拟合圆操作。

5、拟合圆

        所有数据都准备好了之后,就可以开始拟合圆的操作。插件位于【几何工具】-》【拟合圆】。它的输入主要有两个部分,一个是原来的图像,一个各个轮廓的重心点,有了这两个数据,就可以完成拟合圆的操作了。这部分和之前的拟合直线是一样的。那输出的结果也是非常直接的,一个是圆心的位置,一个是半径的大小。

6、图像显示

        如果流程跑起来,我们一般是看不到图像效果的,所以通常我们都会通过图像显示的插件,把结果显示到主窗口上面。显示插件的位置位于【图像处理】-》【图像显示】。在插件中,要做的只是把相应的图像和显示的窗口做一个绑定而已。

        所以,整体来看,这个demo的处理逻辑并不复杂,它的流程就应该是这样的,

7、拟合椭圆

        前面我们讲过,拟合直线、拟合圆和拟合椭圆的流程是非常相似的。所以,这里如果完成的目标是拟合椭圆,那么只需要把第四个插件换成拟合椭圆就可以了。一样的图像输入,一样的轮廓重心输入,单击执行之后,我们就可以看到对应的结果。

        和拟合圆相比较,拟合椭圆的结果稍微复杂一点。它主要有四个输出,分别是椭圆中心坐标、椭圆角度、椭圆长轴长度、椭圆短轴长度。其中椭圆角度比较有意思,这意味生成的椭圆不一定是横平竖直的,它完全有可能是有一点倾斜角度的。

这篇关于上位机图像处理和嵌入式模块部署(qmacvisual拟合圆和拟合椭圆)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/847711

相关文章

python logging模块详解及其日志定时清理方式

《pythonlogging模块详解及其日志定时清理方式》:本文主要介绍pythonlogging模块详解及其日志定时清理方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地... 目录python logging模块及日志定时清理1.创建logger对象2.logging.basicCo

Qt spdlog日志模块的使用详解

《Qtspdlog日志模块的使用详解》在Qt应用程序开发中,良好的日志系统至关重要,本文将介绍如何使用spdlog1.5.0创建满足以下要求的日志系统,感兴趣的朋友一起看看吧... 目录版本摘要例子logmanager.cpp文件main.cpp文件版本spdlog版本:1.5.0采用1.5.0版本主要

Spring Boot项目部署命令java -jar的各种参数及作用详解

《SpringBoot项目部署命令java-jar的各种参数及作用详解》:本文主要介绍SpringBoot项目部署命令java-jar的各种参数及作用的相关资料,包括设置内存大小、垃圾回收... 目录前言一、基础命令结构二、常见的 Java 命令参数1. 设置内存大小2. 配置垃圾回收器3. 配置线程栈大小

opencv图像处理之指纹验证的实现

《opencv图像处理之指纹验证的实现》本文主要介绍了opencv图像处理之指纹验证的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学... 目录一、简介二、具体案例实现1. 图像显示函数2. 指纹验证函数3. 主函数4、运行结果三、总结一、

tomcat多实例部署的项目实践

《tomcat多实例部署的项目实践》Tomcat多实例是指在一台设备上运行多个Tomcat服务,这些Tomcat相互独立,本文主要介绍了tomcat多实例部署的项目实践,具有一定的参考价值,感兴趣的可... 目录1.创建项目目录,测试文China编程件2js.创建实例的安装目录3.准备实例的配置文件4.编辑实例的

SpringBoot配置Ollama实现本地部署DeepSeek

《SpringBoot配置Ollama实现本地部署DeepSeek》本文主要介绍了在本地环境中使用Ollama配置DeepSeek模型,并在IntelliJIDEA中创建一个Sprin... 目录前言详细步骤一、本地配置DeepSeek二、SpringBoot项目调用本地DeepSeek前言随着人工智能技

通过Docker Compose部署MySQL的详细教程

《通过DockerCompose部署MySQL的详细教程》DockerCompose作为Docker官方的容器编排工具,为MySQL数据库部署带来了显著优势,下面小编就来为大家详细介绍一... 目录一、docker Compose 部署 mysql 的优势二、环境准备与基础配置2.1 项目目录结构2.2 基

Python使用date模块进行日期处理的终极指南

《Python使用date模块进行日期处理的终极指南》在处理与时间相关的数据时,Python的date模块是开发者最趁手的工具之一,本文将用通俗的语言,结合真实案例,带您掌握date模块的六大核心功能... 目录引言一、date模块的核心功能1.1 日期表示1.2 日期计算1.3 日期比较二、六大常用方法详

CentOS 7部署主域名服务器 DNS的方法

《CentOS7部署主域名服务器DNS的方法》文章详细介绍了在CentOS7上部署主域名服务器DNS的步骤,包括安装BIND服务、配置DNS服务、添加域名区域、创建区域文件、配置反向解析、检查配置... 目录1. 安装 BIND 服务和工具2.  配置 BIND 服务3 . 添加你的域名区域配置4.创建区域

python中time模块的常用方法及应用详解

《python中time模块的常用方法及应用详解》在Python开发中,时间处理是绕不开的刚需场景,从性能计时到定时任务,从日志记录到数据同步,时间模块始终是开发者最得力的工具之一,本文将通过真实案例... 目录一、时间基石:time.time()典型场景:程序性能分析进阶技巧:结合上下文管理器实现自动计时