day30 学习笔记
文章目录
- 前言
- 一、凸包特征检测
- 1.穷举法
- 2.QuickHull法
- 二、图像轮廓特征查找
- 1.外接矩形
- 2.最小外接矩形
- 3.最小外接圆
前言
- 通过今天的学习,我掌握了OpenCV中有关凸包特征检测,图像轮廓特征查找的相关原理和操作
一、凸包特征检测
-
- 通俗的讲,凸包其实就是将一张图片中物体的最外层的点连接起来构成的凸多边形,它能包含物体中所有的内容。
- 凸包检测常用在物体识别、手势识别、边界检测等领域。
tips:凸包与图像的轮廓的区别在于:图像轮廓可能含有凹集,保留了图像的细节;而凸包只含有凸集,是图像的凸近似
1.穷举法
- 对集合中的所有点进行两两配对后连接,对于每条直线,检查其余所有点是否处于直线的同一侧,如果是,那么这两个点是凸包点
-
- 用向量的思想,点都是有坐标的,连起来就可以构成一个向量。再以其中一个点,连接另一个点,构成另一个向量,让两个向量做外积,就是叉积。也就是 s t d = ∣ 向量 a ∣ ∗ ∣ 向量 b ∣ ∗ s i n ( θ ) std=|向量a|*|向量b|*sin(\theta) std=∣向量a∣∗∣向量b∣∗sin(θ) ,能控制 s t d std std的正负的只能是 θ \theta θ,如果计算出来的 s t d std std的正负都相同,说明这些点都在这条直线的同一侧,那么这两个点就是凸包的边界点。
2.QuickHull法
- 将所有点放在二维坐标系中,找到横坐标最小和最大的两个点 P 1 P_1 P1和 P 2 P_2 P2并连线。此时整个点集被分为两部分,直线上为上包,直线下为下包。
- 以上包为例,找到上包中的点距离该直线最远的点 P 3 P_3 P3,连线并寻找直线 P 1 P 3 P1P3 P1P3左侧的点和 P 2 P 3 P2P3 P2P3右侧的点,然后重复本步骤,直到找不到为止。对下包也是这样操作。
对于未经处理的图像,我们无法直接获取点的坐标。特别是对于彩色图像,我们需要将其转换为二值图像,并使用轮廓检测技术来获取轮廓边界的点的坐标。然后,我们才能进行上述寻找凸包点的过程。
1.获取凸包点
- cv2.convexHull(points)
- points:输入参数,图像的轮廓
2.绘制凸包
- cv2.polylines(image, pts, isClosed, color, thickness=1)
- pts:输入凸包点组成的列表
- isclosed:表示是否为闭合多边形
# 获取图像
img = cv.imread(r'D:\AI\笔记课件\images\num.png')
# 灰度化
img_gray = cv.cvtColor(img,cv.COLOR_BGR2GRAY)
# 二值化
_,img_binary = cv.threshold(img_gray,127,255,cv.THRESH_OTSU+cv.THRESH_BINARY_INV)
# 获取轮廓
contours,hierarchy = cv.findContours(img_binary,mode=cv.RETR_EXTERNAL,method=cv.CHAIN_APPROX_SIMPLE)
# 获取凸包
points = [cv.convexHull(i) for i in contours]
# 绘制凸包
cv.polylines(img,points,True,(255,0,0),3,cv.LINE_AA)
# 显示图像
cv.imshow('img',img)
cv.waitKey(0)
cv.destroyAllWindows()
二、图像轮廓特征查找
- 查找图像的轮廓特征就是查找图像的外接轮廓
- 根据轮廓点进行查找,所以需要先找到轮廓点
- 对图像进行灰度化和二值化,目标区域设为白色,其余部分为黑色
1.外接矩形
- cv2.boundingRect(轮廓点坐标)
- 返回的是外接矩形的空间位置信息,即轮廓坐标中最上、最下、最左、最右的点的坐标
img = cv.imread(r"D:\AI\笔记课件\images\flower2.png")
img_copy = img.copy()
# 灰度化
img_gray = cv.cvtColor(img_copy,cv.COLOR_BGR2GRAY)
# 二值化
_,img_binary = cv.threshold(img_gray,127,255,cv.THRESH_OTSU+cv.THRESH_BINARY_INV)
# 查找轮廓
contours,hierarchy = cv.findContours(img_binary,mode=cv.RETR_EXTERNAL,method=cv.CHAIN_APPROX_SIMPLE)
# 绘制轮廓
cv.drawContours(img_copy,contours,-1,(255,0,0),3)
# 获取外接矩阵位置
for i in contours:x_min,y_min,w,h = cv.boundingRect(i)# 绘制外接矩形cv.rectangle(img_copy,(x_min,y_min),(x_min+w,y_min+h),(0,0,255),3,cv.LINE_AA)
# 显示效果
cv.imshow('img',img_copy)
cv.waitKey(0)
cv.destroyAllWindows()
2.最小外接矩形
-
使用旋转卡壳算法
-
对于多边形P的一个外接矩形存在一条边与原多边形的边共线。
-
对于每一条边,找到距离边变最远的点的距离作为矩形的高
-
对于每一条边,找到投影到边最大的距离计算矩形的宽
-
比较通过每一条边计算得到的矩形面积进行比较,找到最小的矩形面积
w i d t h = ∣ b h ‾ ∣ × cos a + ∣ a d ‾ ∣ × cos θ − ∣ a b ‾ ∣ w i d t h=|\overline{{{b h}}}|\times\cos a+|\overline{{{a d}}}|\times\cos\theta-|\overline{{{a b}}}| width=∣bh∣×cosa+∣ad∣×cosθ−∣ab∣ -
在OpenCV中,可以直接使用cv2.minAreaRect()来获取最小外接矩形,该函数只需要输入一个参数,就是凸包点的坐标,然后会返回最小外接矩形的中心点坐标、宽高以及旋转角度。
rect = cv2.minAreaRect(cnt) -
传入的cnt参数为contours中的轮廓,可以遍历contours中的所有轮廓,然后计算出每个轮廓的小面积外接矩形
-
rect 是计算轮廓最小面积外接矩形:rect 结构通常包含中心点坐标
(x, y)
、宽度width
、高度height
和旋转角度angle
cv2.boxPoints(rect).astype(int) -
cv2.boxPoints(rect)返回 是一个形状为4行2列的数组,每一行代表一个点的坐标(x, y),顺序按照逆时针或顺时针方向排列
-
将最小外接矩形转换为边界框的四个角点,并转换为整数坐标
img = cv.imread(r"D:\AI\笔记课件\images\num.png")
# 灰度化
img_gray = cv.cvtColor(img,cv.COLOR_BGR2GRAY)
# 二值化
_,img_binary = cv.threshold(img_gray,127,255,cv.THRESH_OTSU+cv.THRESH_BINARY_INV)
# 查找轮廓
contours,hierarchy = cv.findContours(img_binary,cv.RETR_EXTERNAL,cv.CHAIN_APPROX_SIMPLE)
# 获取最小外接矩形
for i in contours:rect = cv.minAreaRect(i)# 获取每个顶点的坐标box = cv.boxPoints(rect).astype(np.int32)# 绘制图像cv.drawContours(img,[box],-1,(255,0,0),2,cv.LINE_AA)
# 显示效果
cv.imshow('img',img)
cv.waitKey(0)
cv.destroyAllWindows()
3.最小外接圆
- 寻找最小外接圆使用的算法是Welzl算法。Welzl算法基于一个定理:希尔伯特圆定理,对于平面上的任意三个不在同一直线上的点,存在一个唯一的圆同时通过这三个点,且该圆是最小面积的圆(即包含这三个点的圆中半径最小的圆,也称为最小覆盖圆)。
- 新加入的点一定在新的最小覆盖圆的圆周上
cv2.minEnclosingCircle(points) -> (center, radius)
参数说明:
points
:输入参数图片轮廓数据
返回值:
center
:一个包含圆心坐标的二元组(x, y)
。radius
:浮点数类型,表示计算得到的最小覆盖圆的半径。
cv2.circle(img, center, radius, color, thickness)
img
:输入图像,通常是一个numpy数组,代表要绘制圆形的图像。center
:一个二元组(x, y)
,表示圆心的坐标位置。radius
:整型或浮点型数值,表示圆的半径长度。color
:颜色标识,可以是BGR格式的三元组(B, G, R)
,例如(255, 0, 0)
表示红色。thickness
:整数,表示圆边框的宽度。如果设置为-1
,则会填充整个圆。
img = cv.imread(r"D:\AI\笔记课件\images\num.png")
# 灰度化
img_gray = cv.cvtColor(img,cv.COLOR_BGR2GRAY)
# 二值化
_,img_binary = cv.threshold(img_gray,127,255,cv.THRESH_OTSU+cv.THRESH_BINARY_INV)
# 查找轮廓
contours,_ = cv.findContours(img_binary,mode=cv.RETR_EXTERNAL,method=cv.CHAIN_APPROX_SIMPLE)
# 获取最小外接圆
for i in contours:# 获取每个点的位置信息(x,y),radius = cv.minEnclosingCircle(i)# 数据类型转换,元组不能直接使用astype进行类型转换x,y,radius = np.int_(x),np.int_(y),np.int_(radius)# 绘制图像cv.circle(img,(x,y),radius,(255,0,0),3,cv.LINE_AA)
# 显示效果
cv.imshow('img',img)
cv.waitKey(0)
cv.destroyAllWindows()
THE END
相关文章:
day30 学习笔记
文章目录 前言一、凸包特征检测1.穷举法2.QuickHull法 二、图像轮廓特征查找1.外接矩形2.最小外接矩形3.最小外接圆 前言 通过今天的学习,我掌握了OpenCV中有关凸包特征检测,图像轮廓特征查找的相关原理和操作 一、凸包特征检测 通俗的讲,凸…...
变更管理 Change Management
以下是关于项目管理中 变更管理 的深度解析,结合高项(如软考高级信息系统项目管理师)教材内容,系统阐述变更管理的理论框架、流程方法及实战应用: 一、变更管理的基本概念 1. 定义 变更管理是对项目范围、进度、成本、质量等基准的修改进行系统性控制的过程,旨在确保变…...
PaddlePaddle线性回归详解:从模型定义到加载,掌握深度学习基础
目录 前言一、paddlepaddle框架的线性回归1.1 paddlepaddle模型的定义方式1.1.1 使用序列的方式 nn.Sequential 组网1.1.2 使用类的方式 class nn.Layer组网1.2 数据加载 1.3 paddlepaddle模型的保存1.3.1 基础API保存1.3.2 高级API模型的保存1.3.2.1 训练fit进行保存1.3.2.2 …...
几种Word转换PDF的常用方法
使用 Word 内置功能 步骤:打开需要转换的 Word 文档,点击左上角的 “文件” 菜单,选择 “另存为”,选择保存位置,在 “保存类型” 下拉菜单中选择 “PDF”,点击 “保存” 按钮即可。适用场景:适…...
【美化vim】
美化vim 涉及文件一个例子 涉及文件 ~/.vimrc修改这个文件即可 一个例子 let mapleader ,set number " 显示行号"set relativenumber " 显示相对行号set incsearch " 实时开启搜索高亮set hlsearch " 搜索结果高亮set autoinden…...
【git】subtree拆分大的git库到多个独立git库
【git】subtree拆分大的git库到多个独立git库 一、拆分一个子目录为独立仓库 # 这就是那个大仓库 big-project git clone gitgithub.com:tom/big-project.git cd big-project# 把所有 eiyo 目录下的相关提交整理为一个新的分支 eiyo_code git subtree split -P eiyo -b eiyo_…...
Elasticsearch 使用reindex进行数据同步或索引重构
1、批量复制优化 POST _reindex {"source": {"index": "source","size": 5000},"dest": {"index": "dest"} }2、提高scroll的并行度优化 POST _reindex?slices5&refresh {"source": {…...
JDBC对数据的增删改查操作:从Statement到PrepareStatement
目录 一 . Statement简介 二. 通过Statement添加数据 1. 创建表 2. 通过Statement添加数据 a. 获取连接 b. 获取Statement对象 c. 定义SQL语句 d. 执行SQL语句 e. 关闭资源 3. 通过Statement修改数据 4. 通过Statement删除数据 三. PreparedStatement的使用(重点) …...
智体OS上线智体管家:对话式智体应用商店访问
DTNS.OS 更新公告 - 智体管家功能发布 🌟 2024年4月22日重要更新:智体管家正式上线 智体管家是智体OS推出的全新功能,旨在让用户通过自然对话轻松发现和使用智体节点上的所有智体应用,相当于为智体网络打造了一个智能化的应用商…...
vscode flutter 插件, vscode运行安卓项目,.gradle 路径配置
Flutter Flutter Widget Snippets Awesome Flutter Snippets i dart-import Dart Data Class Generator Json to Dart Model Dart Getters And Setter GetX Snippets GetX Generator GetX Generator for Flutter flutter-img-syncvscode运行安卓项目,.gradle 路径配…...
dolphinscheduler实现(oracle-hdfs-doris)数据ETL
dolphinscheduler执行 完整脚本(自行替换相关变量)配置文件conf配置文件解析脚本转base64脚本 完整脚本(自行替换相关变量) user_olsh conf/getInfo.sh Oracle user conf/databases.conf password_olsh conf/getInfo.sh Oracle password conf/databases.conf dblink_olsh conf…...
ViewBS 的工作流程
ViewBS ViewBS 的工作流程 ViewBS 提供多个顶级命令,用于确定所需和最优参数。这些命令可分为两部分:甲基化报告和功能区域的数据可视化。 在甲基化报告部分中,提供多个顶级命令,可以生成关于读取覆盖度、甲基化水平分布、全局甲基化水平等报告。 在功能区域可视化部分…...
qt调用deepseek的API开发(附带源码)
今天讲的是使用qt做一个界面(负责接受deepseek返回的数据和客户发送数据的端口)会用流的方式接受数据提高用户体验 测试效果源码流程配置deepseek调用思路deepseek与qt联合开发界面思路 上一篇文章用的不是流开发,会让客户等待很久࿰…...
java中值传递的含义
Java 中的值传递(Pass by Value)详解 在 Java 中,所有参数的传递都是值传递(Pass by Value),但根据传递的数据类型不同(基本类型 vs 引用类型),表现行为会有所不同。 1.…...
【自然语言处理与大模型】如何知道自己部署的模型的最大并行访问数呢?
当你自己在服务器上部署好一个模型后,使用场景会有两种。第一种就是你自己去玩,结合自有的数据做RAG等等,这种情况下一般是不会考虑并发的问题。第二种是将部署好的服务给到别人来使用,这时候就必须知道我的服务到底支持多大的访问…...
基于PHP+MySQL实现(Web)单词助手网站
WordHelper 这是一个学习 PHP 的时候依照课程设计的要求,做的一个简单的单词助手。 系统通过 CDN 引入 Vue.js 和 ElementUI,并用 PHP 搭建了一个十分十分简易的后台。 一、设计要求 1、词汇录入与编辑。提供接口让用户录入英文单词、词义、发音、词…...
Java面试实战:谢飞机的求职记 - Spring Boot、Redis与微服务技术问答解析
场景描述 谢飞机,一位自称为“Java全栈大师”的程序员,参加了某互联网大厂的Java开发岗位面试。面试官严肃而专业,针对Spring Boot、Redis缓存以及微服务架构等核心技术展开提问。以下是谢飞机在面试中的表现。 第一轮提问(基础篇…...
【数字图像处理】立体视觉信息提取
双目立体视觉原理 设一个为参考平面,一个为目标平面。增加了一个摄像头后,P与Q在目标面T上有分别的成像点 双目立体视觉:从两个不同的位置观察同一物体,用三角测量原理计算摄像机到该物体的距离的 方法 原理:三角测量…...
解析芯片低功耗设计的底层逻辑与实现方法
芯片低功耗设计的必要性可以从实际需求和技术优化两方面来探讨: 从需求角度看,工艺进步和应用场景共同驱动低功耗设计。 随着CMOS制程持续微缩,晶体管密度和时钟频率提升导致静态功耗显著增加,漏电流问题在先进工艺中尤为明显。…...
uniapp开发2--uniapp中的条件编译总结
以下是对 uni-app 中条件编译的总结: 概念: 条件编译是一种技术,允许你根据不同的平台或环境,编译不同的代码。 在 uni-app 中,这意味着你可以编写一套代码,然后根据要编译到的平台(例如微信小…...
Netty 异步机制深度解析:Future 与 Promise 的前世今生
引言:异步编程的「糖」与「痛」 在高性能网络编程中,「异步」几乎是必备的设计模式,异步的好处就是可以提升系统吞吐量,提升效率。但很多开发者初入 Netty 时,对它的异步机制总有点模糊: 为什么 ChannelF…...
如何查看MySql主从同步的偏移量
1.Mysql的主从同步方案 mysql为了在实现读写分离,主库写,从库读 mysql的同步方案主要是通过从库读取主库的binlog日志的方式。 binlog就是一个记录mysql的操作的日志记录,从库通过拿到主库的binlog知道主库进行了哪些操作,然后在从…...
短信验证码安全实战:三网API+多语言适配开发指南
在短信服务中,创建自定义签名是发送通知、验证信息和其他类型消息的重要步骤。万维易源提供的“三网短信验证码”API为开发者和企业提供了高效、便捷的自定义签名创建服务,可以通过简单的接口调用提交签名给运营商审核。本文将详细介绍如何使用该API&…...
护眼-科学使用显示器
一 显示色温对眼睛的影响 显示器的色温设置对护眼效果至关重要,合适的色温可减少蓝光伤害并缓解视疲劳。最护眼的色温并非固定值,需根据环境光、使用时间和场景动态调整。白天推荐6500K左右,夜晚降至3000K-4000K,并借助自动调节工…...
HarmonyOS:1.7
判断题 1.订阅网络状态变化事件时,通过NetConnection类型的对象调用on方法,传入具体事件类型即可: 错误(False) 2.若使用HTTP发起一个GET请求,直接调用get方法,传入请求资源的URL,即可发起请求ÿ…...
物联网赋能玻璃制造业:实现设备智能管理与生产协同
在当今数字化时代,物联网技术正深刻改变着传统制造业的发展模式,玻璃制造业也不例外。物联网的赋能,为玻璃制造业带来了设备智能管理与生产协同的新机遇,推动其向智能化、高效化迈进。 在设备智能管理方面,物联网通过…...
【我的创作纪念日】 --- 与CSDN走过的第365天
个人主页:夜晚中的人海 不积跬步,无以至千里;不积小流,无以成江海。-《荀子》 文章目录 🎉一、机缘🚀二、收获🎡三、 日常⭐四、成就🏠五、憧憬 🎉一、机缘 光阴似箭&am…...
路由器转发规则设置方法步骤,内网服务器端口怎么让异地连接访问的实现
在路由器上设置端口转发(Port Forwarding)可以将外部网络流量引导到特定的局域网设备,这对于需要远程访问服务器、摄像头、游戏主机等设备非常有用。 登录路由器管理界面,添加端口转发规则让外网访问内网的实现教程分享。以下是设…...
Kotlin 的 suspend 关键字
更多相关知识 Kotlin 的 suspend 关键字是 Kotlin 协程的核心组成部分,它用于标记一个函数可以被挂起(暂停执行)并在稍后恢复执行,而不会阻塞线程。 理解 suspend 的作用需要从以下几个方面入手: 1. 允许非阻塞的异步…...
Java面试实战:从Spring Boot到微服务的深入探讨
Java面试实战:从Spring Boot到微服务的深入探讨 场景:电商场景的面试之旅 在某互联网大厂的面试间,面试官李老师正襟危坐,而对面坐着的是传说中的“水货程序员”赵大宝。 第一轮:核心Java与构建工具 面试官&#x…...
文件操作和IO(上)
绝对路径和相对路径 文件按照层级结构进行组织(类似于数据结构中的树型结构),将专门用来存放管理信息的特殊文件称为文件夹或目录。对于文件系统中文件的定位有两种方式,一种是绝对路径,另一种是相对路径。 绝对路径…...
【Dify(v1.2) 核心源码深入解析】Apps 模块
重磅推荐专栏: 《大模型AIGC》 《课程大纲》 《知识星球》 本专栏致力于探索和讨论当今最前沿的技术趋势和应用领域,包括但不限于ChatGPT和Stable Diffusion等。我们将深入研究大型模型的开发和应用,以及与之相关的人工智能生成内容ÿ…...
小测验——根据调整好的参数进行批量输出
文章目录 一、前言与目的二、思考坐标系怎么生成2.1 补2.2 对于自己投影代码中对数据集参数的情况(取负)总结三、代码2.1 用这套代码可视化 pytorch3d能跑通的例子2.2 gshell的例子2.3 直接手写投影的例子四、思路4.1 确定牛和衣服方向4.2 推测牛的视角4.3 教程学习4.3.1 fov…...
蓝耘平台介绍:算力赋能AI创新的智算云平台
一、蓝耘平台是什么 蓝耘智算云(LY Cloud)是蓝耘科技打造的现代化GPU算力云服务平台,深度整合自研DS满血版大模型技术与分布式算力调度能力,形成"模型算力"双轮驱动的技术生态。平台核心优势如下: 平台定位…...
23种设计模式-结构型模式之桥接模式(Java版本)
Java 桥接模式(Bridge Pattern)详解 🌉 什么是桥接模式? 桥接模式用于将抽象部分与实现部分分离,使它们可以独立变化。 通过在两个独立变化的维度之间建立“桥”,避免因多维度扩展导致的类爆炸。 &#x…...
Python常用的第三方模块之数据分析【pdfplumber库、Numpy库、Pandas库、Matplotlib库】
【pdfplumber库】从PDF文件中读取内容 import pdfplumber #打开PDF文件 with pdfplumber.open(DeepSeek从入门到精通(20250204).pdf) as pdf:for i in pdf.pages: #遍历页print(i.extract_text()) #extract_text()方法提取内容print(f----------------第{i.page_number}页结束…...
PerfettoSQL
# Device State: Top App # select id, ts, dur, name from (__query_slice_track__long_battery_tracing_Device_State_Top_app) --> 简便方法 """ INCLUDE PERFETTO MODULE android.battery_stats; select * from android_battery_stats_event_s…...
【Python笔记 03 】运算符
一、算数运算符 1、加减乘除 #加法 print (11) #减法 print (1-1) #乘法 print (1*1) #除法,注:商一定是float浮点数,不管是否能整数,且除数不能为0,如下图: print (1/1) 如果除数为0即报错提示。 …...
组网技术-BGP技术,IS-IS协议,VRRP技术
1.BGP在不同自治系统AS进行路由转发 EBGP外部边界网关协议 IBGP内部边界网关协议 2.AS指的是同一个组织管理下,使用统一选路策略的设备集合 3.AS直接需要直连链路,或者通过VPN协议构造逻辑直连进行邻居建立 4.使用IGP可能存在暴露AS内部的网络信息的…...
Word处理控件Spire.Doc系列教程:C# 为 Word 文档设置背景颜色或背景图片
在 Word 文档中,白色是默认的背景设置。一般情况下,简洁的白色背景足以满足绝大多数场景的使用需求。但是,如果您需要创建简历、宣传册或其他创意文档,设置独特的背景颜色或图片能够极大地增强文档的视觉冲击力。本文将演示如何使…...
极狐GitLab 中如何自定义角色?
极狐GitLab 是 GitLab 在中国的发行版,关于中文参考文档和资料有: 极狐GitLab 中文文档极狐GitLab 中文论坛极狐GitLab 官网 自定义角色 (ULTIMATE ALL) 引入于极狐GitLab 15.7,功能标志为 customizable_roles。默认启用于极狐GitLab 15.9…...
JAVA:Web安全防御
目录 一、Web安全基础与常见威胁 OWASP Top 10核心漏洞解析 • SQL注入(SQLi)、跨站脚本(XSS)、跨站请求伪造(CSRF) • 不安全的反序列化、敏感数据泄露 Java后端常见攻击场景 • 通过HttpServletRequest…...
Nginx:支持 HTTPS
文章目录 Nginx 开启 ssl 以支持 HTTPS1 生成本地证书2 开启 ssl 以支持 HTTPS3 将 https 的请求转发给 http 最终的 nginx.conf 如下 Nginx 开启 ssl 以支持 HTTPS [!IMPORTANT] 在下文中,将采用如下定义。 HTTP端口: 80 HTTPS端口: 443 服务…...
数据库性能优化(sql优化)_分布式优化思路02_yxy
数据库性能优化_分布式优化思路02 1 核心优化策略(二)_分区智能连接优化2 核心优化策略(三)_数据本地化3 核心优化策略(四)_选择正确的数据分发方式1 核心优化策略(二)_分区智能连接优化 分区智能连接出现在多个表进行连接时的优化策略,优化效率非常明显 分区智能连接是指:…...
【网络】代理服务器收尾及高级IO
全是通俗易懂的讲解,如果你本节之前的知识都掌握清楚,那就速速来看我的笔记吧~ 自己写自己的八股!让未来的自己看懂! (全文手敲,受益良多) 本文主要带你了解什么是高级IO,以及常…...
基于大疆行业无人机的特色解决方案-无线通信篇:基于蜂窝以及自组网MESH的无线通信C2链路
基于大疆行业无人机的特色解决方案-无线通信篇:基于蜂窝以及自组网MESH的无线通信C2链路 大疆无人机目前是业内性价比最有优势的无人机产品,尤其是机场3的推出,持续产品升级迭代,包括司空2、大疆智图以及大疆智运等专业软件、各种…...
js实现2D图片堆叠在一起呈现为3D效果,类似大楼楼层的效果,点击每个楼层不会被其他楼层遮挡
js实现2D图片堆叠在一起呈现为3D效果,类似大楼楼层的效果,点击每个楼层不会被其他楼层遮挡。实现过程使用元素的绝对定位,通过伪元素设置背景图片和文字,效果如下: index.jsx: import React, { useEffect,…...
【安装部署】Linux下最简单的 pytorch3d 安装
最近接触一个项目需要用到 pytorch3d 库,找了好多眼花缭乱的资料,最后发现大道至简~ 1、查看 python,cuda,pytorch 的版本 source activate myMRI # 激活环境 python --version # python 版本查看 nvcc --version # cuda…...
【在阿里云或其他 CentOS/RHEL 系统上安装和配置 Dante SOCKS5 代理服务】
在阿里云或其他 CentOS/RHEL 系统上安装和配置 Dante SOCKS5 代理服务 什么是SOCKS5?前提条件步骤 1:安装 Dante SOCKS5 服务步骤 2:创建专用代理用户(推荐)步骤 3:配置 Dante 服务步骤 4:设置日…...
第十五讲、Isaaclab中在机器人上添加传感器
0 前言 官方教程:https://isaac-sim.github.io/IsaacLab/main/source/tutorials/04_sensors/add_sensors_on_robot.html IsaacsimIsaaclab安装:https://blog.csdn.net/m0_47719040/article/details/146389391?spm1001.2014.3001.5502 传感器有助于智能…...