随笔分类 - 几何
摘要:一、空间直线方程 1.1 一般方程 空间直线可以看成成两个平面的交线,设两个平面方程分别为\(A_1x + B_1y + C_1z + D_1 = 0\) 和 \(A_2x + B_2y + C_2z + D_2 = 0\),则直线\(l\)的一般方程可以表示为: \(\left\{\begin{m
阅读全文
摘要:一、平面射线与线段是否相交 1.1 相交检测 步骤 1、判断射线方向\(\vec{d}\)(单位向量)是否与线段所在方向\(\vec{AB}\)是否平行,如果平行则不相交 2、假设射线与线段交点为\(P\),则计算\(|\vec{AP}|\)与\(|\vec{AB}|\)的比例\(u\) 3、如果\
阅读全文
摘要:已知条件 \(ori(x, y, z)\)表示射线起点坐标 \(dir(x, y, z)\)表示射线方向(单位向量) \(Bound\)表示AABB包围盒 \(Bound.MinBound\)表示包围盒在各轴向最小坐标 \(Bound.MaxBound\)表示包围盒在各轴向最大坐标 一般平面方程为\
阅读全文
摘要:在目标检测时通常需要计算包围框的IOU,用于判断正负样本以及后续NMS过滤。框A和框B的IOU的值为其交集面积除以并集面积, $$IOU = \frac{Area_{A \cap B}}{Area_{A \cup B}}$$ 如果框为轴向包围盒,则可以参考IOU及NMS实现 ,但有时会遇到旋转框问题
阅读全文
摘要:记两线段为$AB$与$CD$ 一、方法一 1. 先判断线段是否共线 依据共线向量叉乘为零来判断 $\vec{AB}$与$\vec{CD}$叉乘是否为0,如果为0则共线 2. 在不共线情况下判断是否相交 依据$0 \leq t \leq 1$且$0 \leq u \leq 1$来判断,其中$t$和$u
阅读全文
摘要:1、点是否在任意多边形内部 https://blog.csdn.net/WilliamSun0122/article/details/77994526 射线法 射线可统一向右, 特殊情况: 1、射线与多边形顶点相交,交点只能算一个; 2、射线和多边形边交点不能算(只能选y较大的顶点); 3、和射线重
阅读全文
摘要:记向量$OP$与$X$轴正方向夹角为 $\alpha$ ,长为 $ R $ ,则$x = Rcos{\alpha} ,\quad y = Rsin{\alpha} $ ,顺时针或者逆时针旋转$\theta$后变为$ OP' $ ,其长度不变。 一、顺时针 如果按顺时针旋转,$OP'$坐标为: $x'
阅读全文
摘要:上一篇记录了Cube Spline的原理及求解过程,这里记录一下Kochanek-Bartels Cubic Splines(TCB Spline)的原理及推导。TCB Spline是D. Kochanek, R. Bartels于1984年提出的一种样条插值方法,提供三个参数:T(张量参数), C
阅读全文
摘要:插值是离散函数逼近的重要方法,利用它可通过函数在有限个点处的取值状况,估算出函数在其他点处的近似值。与拟合不用经过每个已知点不同,插值需要经过每个已知点,另外并不是阶数越高越好,因为高阶插值容易出现龙格现象,即插值后在区间两端点处波动极大,产生明显的震荡。三次样条插值作为一种常见的插值方法,这里记录
阅读全文
摘要:1. 曲率基本概念 曲率是几何体不平坦程度的一种衡量。 曲线曲率 曲线曲率可以描述曲线的弯曲程度,在曲线方程知道的情况,且二阶导存在的情况下(直角坐标系),其值为 $$K=\frac{\left | y^{''} \right | }{(1 + {y^{'}}^{2})^{\frac{3}{2} }
阅读全文
摘要:一、GLB简介 GLB是以GL传输格式(gltf)保存3D模型的一种二进制文件格式。 GLTF文件结构图 参考文档:https://www.khronos.org/registry/glTF/specs/2.0/glTF-2.0.pdf 参考手册: https://www.khronos.org/f
阅读全文
摘要:一、算法原理 随机样本一致性(Random Sample Consensus RANSAC) 是一种迭代方法,用于从包含异常值的观察数据中估计出数学模型参数,因此也可以理解为一种异常值检测方法。RANSAC的一个基本假设是,数据由内点("inliers")和外点("outliers")组成,其中内点
阅读全文
摘要:最近工作中遇到一个拟合圆的问题,通过找到的轮廓点(存在缺失的情况),需要找出圆心及半径。这里采用[最小二乘法](https://baike.baidu.com/item/%E6%9C%80%E5%B0%8F%E4%BA%8C%E4%B9%98%E6%B3%95/2522346)进行拟合,并记录一下具
阅读全文
摘要:Computer Graphics Research Software 包含大量文章及开源库 http://www.dgp.toronto.edu/~rms/links.html PCL https://www.cnblogs.com/li-yao7758258/p/6441763.html htt
阅读全文
摘要:工作中有时会遇到求一些散点的轮廓问题,对常用的一些算法收集了一些资料,这里做一下记录。 凹包 Implementation of a fast and efficient concave hull algorithm 凹包与凸包求边界轮廓 浅议凹包算法 Alpha Shapes Alpha Shap
阅读全文
摘要:vedo是一个基于VTK开发的3维对象显示和分析的开源库,我常用于显示三维对象,这里记录一下常用的操作 显示模型及点集 def show_stl_pts_point_two(stl_path, pts_path, target_pts, point): stl_model = vedo.load(s
阅读全文
摘要:import vtk from vtkplotter import * from vtk.util.numpy_support import vtk_to_numpy import numpy as np import os def get_gum_line_pts(gum_line_path):
阅读全文
摘要:参考链接: https://kitware.github.io/vtk-examples/site/Cxx/ https://blog.csdn.net/www_doling_net/article/details/8763686 Example1 CMakeLists.txt cmake_mini
阅读全文
摘要:工作中有时候会遇到求向量和轮廓的交点,这里可以参考以下博客: 求解向量和轮廓的交点
阅读全文
摘要:基于opencv的直线和曲线拟合与绘制(最小二乘法) C++ opencv曲线拟合 二维点拟合圆 最小二乘法拟合圆公式推导及其实现
阅读全文