游程描述的任意区域最小旋转矩形算法实现

news/2024/5/19 6:40:50/文章来源:https://blog.csdn.net/iamqianrenzhan/article/details/127161023

效果

采用游程描述了多个区域,经过算法计算,找到最小包围矩形。
请添加图片描述
白色是指定的区域,黄色是该区域的最小旋转矩形。

算法原理

有时候算法不一定很高深,只要把道理点破,实现起来很简单,难的是最开始的算法构思过程。
区域最小旋转矩形的算法原理也很简单:将区域从0到90度按照步长旋转,每一步都计算矩形的面积,当面积取最小时的旋转角度就是最小旋转矩形的角度。
然后就会有很多优化的方法,比如:1:用游程描述的区域,只要保证游程两个端点在矩形内,那么游程上所有点都在矩形内(线段两个端点在凸包内,那么线段上任意一点都在凸包内),所有只需要对游程的两个端点进行计算。2:由于采用的是按步长搜索的方法,因此可以进行两轮搜索,第一轮采用大步长,确定目标大致范围,第二轮采用小步长,在目标范围附近搜索,达到更高精度但算法耗时更短。

基础知识

如何描述一个区域?

采用游程的方法,比如有如下区域,
在这里插入图片描述

描述方法为:(x1,x2,y),x采用左闭右开区间。

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

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

相关文章

Dapper 在继承层次结构中处理数据

Dapper 包含一项功能,用于处理可能逐行映射到不同类型的数据。在处理使用Table Per Hierarchy存储模式的继承层次结构时,此功能特别有用,即一个表用于表示层次结构中的所有类。“鉴别器”列用于区分类型。 以下类定义表示基于抽象Contract类型的继承层次结构。还定义了三种派…

16.python实现线性单元和梯度下降-10月4日编程作业-Relu函数

目录 课堂笔记 代码实现1 运行结果1 代码实现2 评定一个学生的综合绩点 运行结果2 小结 课堂笔记 代码实现1 from cgi import print_environ from functools import reduce import numpy as np#定义感知器类 class perceptron(object):#感知器初始化函数(参数个数&…

ASP.NET Core--项目基础与搭建

文章目录项目基础与搭建创建项目ViewImports.cshtmlappsettings.json执行顺序Program.cs类startup.cs类项目基础与搭建 创建项目 ViewImports.cshtml ViewImports文件可以影响文件夹层次结构中的所有视图 ViewImports文件是我们可以编写代码并放置通用指令以引入我们的视图所需…

数据结构 - 单链表

文章目录一、单链表1.单链表的定义1.1概念介绍2.如何用代码来定义一个单链表*知识点3.单链表的插入删除未完待续...一、单链表 1.单链表的定义 单链表是一种链式存取的数据结构,用一组地址任意的存储单元存放线性表中的数据元素。链表中的数据是以结点来表示的&…

Halcon快速入门笔记3

read_image (Image, ‘surface_scratch’) invert_image (Image, ImageInverted) get_image_size (ImageInverted, Width, Height) gen_sin_bandpass (ImageBandpass, 0.4, ‘none’, ‘dc_center’, Width, Height) fft_generic (ImageInverted, ImageFFT, ‘to_freq’, -…

【JavaWeb】前置知识:CSS与JavaScript知识汇总

本文被 系统学习JavaWeb 收录,点击订阅 写在前面 大家好,我是黄小黄!经过上一篇 从Html入门JavaWeb 的学习,想必大家对标签都有了一定的认识。本文将通过案例,讲解CSS与JavaScript的基础知识,文章内容比较…

SSM+Vue个人健康管理系统 个人健康档案系统 个人健康信息管理系统Java

SSM+Vue个人健康管理系统 个人健康档案系统 个人健康信息管理系统Java💖🔥作者主页:计算机毕设老哥🔥 💖精彩专栏推荐订阅:在 下方专栏👇🏻👇🏻👇🏻👇🏻Java实战项目专栏 Python实战项目专栏 安卓实战项目专栏 微信小程序实战项目专栏目录Java实战项…

【数据结构从0到1】第九篇:图

文章目录一、图的基本概念二、图的存储结构2.1 邻接矩阵2.2 邻接表三、图的遍历3.1 图的广度优先遍历3.2 图的深度优先遍历四、最小生成树4.1 Kruskal算法4.2 Prim算法五、最短路径5.1 单源最短路径--Dijkstra算法5.2 单源最短路径--Bellman-Ford算法5.3 多源最短路径--Floyd-W…

基于Java开发的五子棋游戏APP设计与实现

目录 一、项目概述 1 (一)安卓游戏发展趋势 1 (二)开发安卓游戏的意义 1 二、项目需求分析 2 (一)功能需求分析 2 (二)性能需求分析 2 (三)可行性分析 3 &…

【点云处理】点云法向量估计及其加速(1)

点云法向量是3D点云一个极其重要的几何表面特征,众多的点云处理算法都依赖精确的法向量估计,例如点云分割,点云去噪等。在自动驾驶领域,面对特殊场景我们主要依赖点云法向量进行场景分割。估计点云法向量需要得到该点的邻域内点&a…

nodejs+vue+elementui幼儿园管理系统python java php

本设计主要分为学生家长,管理员和教师三个角色,其中学生家长功能有注册登查看幼儿信息,查看缴费信息,申请请假,查看体检信息等;教师的功能有登陆系统,对自己的幼儿学生,班级&#xf…

谷粒商城 集群篇 (二) --------- K8s 集群安装

目录一、kubeadm二、前置要求三、部署步骤四、环境准备五、安装环境1. 安装 docker① 卸载 docker② 安装 Docker-CE③ 配置 docker 加速④ 启动 docker & 设置 docker 开机自启2. 添加阿里云 yum 源3. 安装 kubeadm,kubelet 和 kubectl六、部署 k8s-master1. m…

STL之string

更新string,这段时间学习了stl,发现共性的东西很多,string,vector,list等,弄懂他们的逻辑框架很重要,其实也是stl的规范,文章更新内容不管这些函数怎么用,就从大逻辑来讲…

Java项目:SSH土地信息管理系统平台

作者主页:夜未央5788 简介:Java领域优质创作者、Java项目、学习资料、技术互助 文末获取源码 项目介绍 本项目包含管理员与用户两种角色; 管理员角色包含以下功能: 管理员登录,用户管理,分类管理,档案管理等功能。 用户角色包含…

基于STM32的光敏传感器数据采集系统-物联网应用系统设计项目开发

目录1 项目概述1.1 项目介绍1.2 项目开发环境1.3 小组人员及分工2 需求分析2.1 系统需求分析2.2 可行性分析2.3 项目实施安排3 系统硬件设计3.1 系统整体硬件电路设计3.2 STM32 最小系统电路设计3.3 传感器模块电路设计3.4 光敏电阻模块电路设计4系统软件设计4.1 系统整体流程设…

源码、反码、补码和精度损失

数据类型转换,转换过程中可能导致溢出或损失精度 1.源码:源码就是二进制的数字并且开头的一位代表符号位。例:(+1)的源码:0000 0001(-1)的源码:1000 0001 2.反码:正数的反码是其本身负数的反码是符号位不懂其他位取反例: (+1)的反码:0000 0001(-1)的反码:1111 …

TC8:TCP_CLOSING_03-13

TCP_CLOSING_03: RST with DATA 目的 TCP允许接收的RST消息包含数据 测试步骤 Tester:让DUT移动到ESTABLISHED状态Tester:发送RST报文,包含一些数据DUT:不发送任何响应Tester:验证DUT在CLOSED状态期望结果 3, DUT:不发送任何响应 4, Tester:验证DUT在CLOSED状态 CANoe …

谷歌味儿

咱们从小就被教育过,决定一个人成败的最重要因素不是智商、暂时的能力,而是性格和品质。这是如此的正确,以至于很多公司暗暗将这个作为候选人的衡量标准。比如咱们常听到的“X里味儿”。今天咱们看看“谷歌味儿“。谷歌内部明确要求的三大品质…

spring:beanfactory与applicationcontext的设计

beanfactory接口提供的方法:getBean,getBeanProvider,containsBean,isSingleton,getType,getAliases listableBeanFactory: 不会取到手动注册的bean,为什么要这么做呢,因为有些bean属于 SpringFramework 内部使用的,这样做的目的是 SpringFramework 不希望咱开发者直接…

恶意代码分析实战 windbg内核恶意代码分析 lab 10-1 10-2 10-3

Lab 10-01 本实验包括一个驱动程序和一个可执行文件。你可以从任意位置运行可执行文件,但为了使程序能够正常运行,必须将驱动程序放到C:\Windows\System32目录下,这个目录在受害者计算机中已经存在。可执行文件是Lab10-01.exe,驱动程序是Lab 10-01.sys. 问题 1.这个程序是否…