十七、openCV教程 图像轮廓
一、图像轮廓
图像轮廓是具有相同颜色或灰度的连续点的曲线.轮廓在形状分析和物体的检测和识别中很有用。
轮廓的作用:.用于图形分析、物体的识别和检测
注意点:
为了检测的准确性,需要先对图像进行二值化或Canny操作。
画轮廓时会修改输入的图像,如果之后想继续使用原始图像,应该将原始图像储存到其他变量中。
二、查找轮廓
contours[ˈkɒntʊəz] 轮廓;外形;曲线;弯曲的表面
findContours(image, contours,hierarchy,mode, method[, contours[, hierarchy[, offset]]])
contours,定义为“vector<vector<Point>> contours”,是一个向量,并且是一个双重向量,向量内每个元素保存了一组由连续的Point点构成的点的集合的向量,每一组Point点集就是一个轮廓。 有多少轮廓,向量contours就有多少元素。
hierarchy,定义为“vector<Vec4i> hierarchy”,
Vec4i的定义: typedef Vec<int, 4> Vec4i;定义了一个“向量内每一个元素包含了4个int型变量”的向量。 hierarchy向量内每一个元素的4个int型变量——hierarchy[i][0] ~hierarchy[i][3],分别表示第 i个轮廓的后一个轮廓、前一个轮廓、父轮廓、内嵌轮廓的索引编号。如果当前轮廓没有对应的后一个 轮廓、前一个轮廓、父轮廓或内嵌轮廓的话,则hierarchy[i][0] ~hierarchy[i][3]的相应位被设置为
默认值-1。
mode 查找轮廓的模式
RETR_EXTERNAL=0,表示只检测外围轮廓 external [ɪkˈstɜːnl] 外观;外表
RETR_LIST=1,检测的轮廓不建立等级关系,即检测所有轮廓,较为常用
RETR_CCOMP=2,每层最多两级,从小到大,从里到外.
RETR_TREE = 3,按照树型存储轮廓,从大到小,从右到左.
method 轮廓近似方法也叫ApproximationMode approximation英 [əˌprɒksɪˈmeɪʃən]
大致说法;粗略描述;大致相似的东西;近似物;估算;粗略估计 ;近似值;逼近;逼近
chain英 [tʃeɪn] 链;链条
CHAIN APPROX_NONE保存所有轮廓上的点
CHAIN APPROX_SIMPLE,只保存角点,比如四边形,只保留四边形的4个角,存储信息少,比较常
用
返回contours和hierachy 即轮廓和层级
void myCV::contourstest()
{Mat dst,src1 , src = imread("lunkuo.jpg");cvtColor(src, src1, CV_BGR2GRAY);//Mat = imread("06.png", IMREAD_GRAYSCALE);threshold(src1, dst, 125, 255, THRESH_BINARY);vector<vector<Point>> contours;findContours(dst, contours, RETR_TREE, CHAIN_APPROX_SIMPLE);drawContours(src, contours, -1, Scalar(0, 0, 255), 1);imshow("src", src);
}
相关文章:
十七、openCV教程 图像轮廓
一、图像轮廓 图像轮廓是具有相同颜色或灰度的连续点的曲线.轮廓在形状分析和物体的检测和识别中很有用。 轮廓的作用:.用于图形分析、物体的识别和检测 注意点: 为了检测的准确性,需要先对图像进行二值化或Canny操作。 画轮廓时会修改输入的图像,如…...
基于视觉的语义匹配见多了,那基于雷达的呢?
论文题目: LiDAR-based HD Map Localization using Semantic Generalized ICP with Road Marking Detection 论文作者: Yansong Gong, Xinglian Zhang, Jingyi Feng, Xiao He and Dan Zhang 作者单位:北京驭势科技有限公司 导读ÿ…...
01、爬虫学习入门
爬虫:通过编写程序,来获取获取互联网上的资源 需求:用程序模拟浏览器,输入一个网址,从该网址获取到资源或内容 一、入门程序 #使用urlopen来进行爬取 from urllib.request import urlopen url "http://www.ba…...
我与C语言二周目邂逅vlog——6.文件操作
1. 为什么使⽤⽂件? 如果没有⽂件,我们写的程序的数据是存储在电脑的内存中,如果程序退出,内存回收,数据就丢失 了,等再次运⾏程序,是看不到上次程序的数据的,如果要将数据进⾏持久…...
Hugo 部署与自动更新(Git)
文章目录 Nginx部署Hugonginx.confhugo.conf Hugo自动更新Hugo自动更新流程添加访问令牌添加web hookrust实现自动更新接口 Nginx部署Hugo nginx.conf user nginx; worker_processes auto;error_log /var/log/nginx/error.log notice; pid /var/run/nginx.pid;even…...
HTTP代理揭秘:这些场景你都用对了吗?
HTTP代理是网络中常见的一种工具,可以帮助我们提升网络安全性和隐私保护,优化网络访问速度。本文将详细介绍什么是HTTP代理及其适用的场景。 HTTP代理是介于客户端(如浏览器)和服务器之间的中间服务器。它接收客户端的HTTP请求&a…...
电动汽车充电技术及运营知识问答pdf
电动汽车充电技术及运营知识问答 作者:马银山编著 出版社:北京:中国电力出版社 ISBN:9787512320406 资源大小:16.99MB 目录: http://literalink.top/resource/detail/7181601144102195200 第一章 电动汽车基本知识 1 1-1什么是电动汽车? 11-…...
playbooks 分布式部署 LNMP
1、环境配置 ansible 服务器 192.168.10.10nginx 服务器 192.168.10.20mysql 服务器 192.168.10.21php 服务器 192.168.10.22 2、安装 ansble #192.168.10.10节点 yum install -y epel-release #先安装 epel 源 yum install -y ansible配置主机清单 …...
成为git砖家(8): 使用 git log 查询范围内的 commit
文章目录 1. 查询 git log 的文档2. 不带任何参数: git log 啥意思?3. git log 最主要功能是什么?4. git log <commit1>..<commit2> 什么意思5. 查看最近n次commit6. References 1. 查询 git log 的文档 git help log --web市面上针对 git …...
Win10出现错误代码0x80004005 一键修复指南
对于 Windows 10 用户来说,错误代码 0x80004005 就是这样一种迷雾,它可能在不经意间出现,阻碍我们顺畅地使用电脑。这个错误通常与组件或元素的缺失有关,它可能源自注册表的错误、系统文件的损坏,或者是软件的不兼容。…...
C++ 基础(类和对象下)
目录 一. 再探构造函数 1.1. 初始化列表(尽量使用列表初始化) 二. static成员 2.1static成员初始化 三.友元 3.1友元:提供了⼀种 突破类访问限定符封装的方式. 四.内部类 4.1如果⼀个类定义在另⼀个类的内部,这个内部类就叫…...
java RestClientBuilder es 集群 鉴权
在Java中使用RestClientBuilder连接到Elasticsearch集群并进行鉴权,可以通过设置HttpHosts、RequestConfig以及添加相应的Header来实现。 以下是一个示例代码: import org.apache.http.Header; import org.apache.http.HttpHost; import org.apache.htt…...
【OpenCV】中saturate_cast<uchar>的含义和用法是什么?
saturate_cast<uchar>主要是为了防止颜色溢出操作(0~255) if(data<0) data0; elseif(data>255) data255;...
【数据结构】哈希表二叉搜索树详解
💎 欢迎大家互三:2的n次方_ 💎所属专栏:数据结构与算法学习 🍁1. 二叉搜索树 二叉搜索树也称为二叉查找树或二叉排序树,是一种特殊的二叉树结构,它的特点是: 1. 若左树不为空&am…...
【SpringBoot】参数传递之@ModelAttribute
ModelAttribute标注的方法会在Controller类的每个映射URL的控制执行方法之前执行。 ModelAttribute public void findUserById(PathVariable("userId") Long userId,Model model){ model.addAttribute("user",userService.findUserById(userId)); } GetM…...
frp搭建ssh内网穿透
frp软件包下载 检查外网服务器架构 uname -i官网下载对应的版本 https://github.com/fatedier/frp/releases 使用wget或拷贝文件到外网服务器/opt目录下并解压 解压得到frp_0.59.0_linux_amd64文件夹 tar -zxvf frp_0.59.0_linux_amd64.tar.gzfrpc 这是 frp 的客户端可执…...
OpenCV库学习之cv2.normalize函数
OpenCV库学习之cv2.normalize函数 一、简介 cv2.normalize是OpenCV库中的一个函数,用于对图像进行归一化处理。归一化是一种线性变换,可以将图像像素值的范围缩放到指定的区间。这种操作在图像处理中非常有用,特别是在需要将图像数据用于某些…...
LINUX操作系统安全
一、概述内容 操作系统负责计算机系统的资产管理,支撑和控制各种应用程序运行,为用户提供管理计算机系统管理接口。操作系统也是构成网络信息系统的核心关键组件,其安全可靠性决定了计算机系统的安全性和可靠性。 操作系统安全是指满足安全…...
vue3.0学习笔记(三)——计算属性、监听器、ref属性、组件通信
1. computed 函数 定义计算属性: computed 函数,是用来定义计算属性的,计算属性不能修改。 计算属性应该是只读的,特殊情况可以配置 get set 核心步骤: 导入 computed 函数 执行函数 在回调参数中 return 基于响应…...
Elasticsearch面试三道题
针对Elasticsearch的面试题,从简单到困难,我可以给出以下三道题目: 1. Elasticsearch的基本概念与优势 问题:请简要介绍Elasticsearch是什么,并说明它相比传统数据库的优势有哪些? 答案: El…...
【Axure高保真原型】引导弹窗
今天和大家中分享引导弹窗的原型模板,载入页面后,会显示引导弹窗,适用于引导用户使用页面,点击完成后,会显示下一个引导弹窗,直至最后一个引导弹窗完成后进入首页。具体效果可以点击下方视频观看或打开下方…...
国防科技大学计算机基础课程笔记02信息编码
1.机内码和国标码 国标码就是我们非常熟悉的这个GB2312,但是因为都是16进制,因此这个了16进制的数据既可以翻译成为这个机器码,也可以翻译成为这个国标码,所以这个时候很容易会出现这个歧义的情况; 因此,我们的这个国…...
376. Wiggle Subsequence
376. Wiggle Subsequence 代码 class Solution { public:int wiggleMaxLength(vector<int>& nums) {int n nums.size();int res 1;int prediff 0;int curdiff 0;for(int i 0;i < n-1;i){curdiff nums[i1] - nums[i];if( (prediff > 0 && curdif…...
macOS多出来了:Google云端硬盘、YouTube、表格、幻灯片、Gmail、Google文档等应用
文章目录 问题现象问题原因解决办法 问题现象 macOS启动台(Launchpad)多出来了:Google云端硬盘、YouTube、表格、幻灯片、Gmail、Google文档等应用。 问题原因 很明显,都是Google家的办公全家桶。这些应用并不是通过独立安装的…...
C++中string流知识详解和示例
一、概览与类体系 C 提供三种基于内存字符串的流,定义在 <sstream> 中: std::istringstream:输入流,从已有字符串中读取并解析。std::ostringstream:输出流,向内部缓冲区写入内容,最终取…...
RNN避坑指南:从数学推导到LSTM/GRU工业级部署实战流程
本文较长,建议点赞收藏,以免遗失。更多AI大模型应用开发学习视频及资料,尽在聚客AI学院。 本文全面剖析RNN核心原理,深入讲解梯度消失/爆炸问题,并通过LSTM/GRU结构实现解决方案,提供时间序列预测和文本生成…...
Typeerror: cannot read properties of undefined (reading ‘XXX‘)
最近需要在离线机器上运行软件,所以得把软件用docker打包起来,大部分功能都没问题,出了一个奇怪的事情。同样的代码,在本机上用vscode可以运行起来,但是打包之后在docker里出现了问题。使用的是dialog组件,…...
Java线上CPU飙高问题排查全指南
一、引言 在Java应用的线上运行环境中,CPU飙高是一个常见且棘手的性能问题。当系统出现CPU飙高时,通常会导致应用响应缓慢,甚至服务不可用,严重影响用户体验和业务运行。因此,掌握一套科学有效的CPU飙高问题排查方法&…...
基于IDIG-GAN的小样本电机轴承故障诊断
目录 🔍 核心问题 一、IDIG-GAN模型原理 1. 整体架构 2. 核心创新点 (1) 梯度归一化(Gradient Normalization) (2) 判别器梯度间隙正则化(Discriminator Gradient Gap Regularization) (3) 自注意力机制(Self-Attention) 3. 完整损失函数 二…...
iview框架主题色的应用
1.下载 less要使用3.0.0以下的版本 npm install less2.7.3 npm install less-loader4.0.52./src/config/theme.js文件 module.exports {yellow: {theme-color: #FDCE04},blue: {theme-color: #547CE7} }在sass中使用theme配置的颜色主题,无需引入,直接可…...
