图像处理
总结个人认为有价值的图像处理任务,本专栏从尽量给出理论分析或者直接给出可执行代码
ANTennaaa
这个作者很懒,什么都没留下…
展开
-
3D重建 | COLMAP 源码解析
–持续更新中CmakeLists 项目构建解读SourceCode 解读当我们运行MVS框架时,执行到一下pipelineAutomaticReconstructionController::Run主体框架如下:RunFeatureExtractionRunFeatureMatchingIf sparse:RunSparseMapperIf dense:RunDenseMapper...原创 2021-11-03 10:07:21 · 2418 阅读 · 2 评论 -
多视图几何 本质矩阵与基本矩阵
本文旨在明晰本质矩阵与基本矩阵的概念,以及具体的计算方法。预备知识:对极几何,可以参考多视图几何相关书籍。平面表示方式: 给定平面过一点aaa以及平面上的任一点xxx,以及其法向量nnn,平面可以写成(x−a)n=0(x-a){n}=0(x−a)n=0叉乘与反对称矩阵的关系,下式中,AAA代表向量aaa对应的反对称矩阵:a×b=Aba \times b = Aba×b=Ab一. 本质矩阵Essential Matrix用途:多视图系统中,用于描述不同相机之间位姿关系 (外参) 的矩原创 2021-05-09 14:18:15 · 379 阅读 · 0 评论 -
几何基础 | 点与直线
将空间点和直线写成齐次坐标,有以下结论:直线的交点:设有两直线l1l_1l1与l2l_2l2,则两直线的交点p=l1p=l_1p=l1 x l2l_2l2两点连成的直线:设有两个点p1p_1p1与p2p_2p2, 则两点连成的直线l=p1l=p_1l=p1 x p2p_2p2注意,以上x为叉积证明:参考 求两直线交点(三维叉积)——求四边形面积(二维叉积)...翻译 2021-05-05 19:05:23 · 188 阅读 · 0 评论 -
位姿估计 - PoseCNN中的 Implicit Shape Models (ISM)
文章提到了Imolicit Shape Models(ISM),直观上来看,就是用同一个模型的不同部位,投票出物体的中心坐标。原创 2021-02-17 14:03:01 · 259 阅读 · 0 评论 -
open3d 点云上交互选点
有时候我想选定点云上的特定点,但一般来讲点云是无序的。下面的教程可以使用鼠标点选。链接http://www.open3d.org/docs/release/tutorial/visualization/interactive_visualization.html翻译 2021-01-19 17:01:52 · 1921 阅读 · 0 评论 -
点云处理 法向量估计
说一下思路估计每个顶点的法向量,单独从一点来看是无法做到的,一般是找到邻域,以邻域拟合平面近似估计顶点法向量。从计算的角度来看,计算法向量首先连接邻域到顶点,得到一系列向量ViViVi,然后假设一个法向量n⃗\vec{n}n,将法向量与每一个连接向量点乘,并最后求和,优化目标就是fff取得最小值。f=∑i=1n(Vi∗a⃗)f=\sum_{i=1}^{n} (Vi*\vec{a})f=i=1∑n(Vi∗a)具体做法:基于近邻搜索找到近邻点近邻点减掉顶点求协方差矩阵最小特征值对应的特..原创 2021-01-07 00:10:50 · 1304 阅读 · 0 评论 -
模型参数拟合之 RANSAC
一种鲁棒的参数估计方法原创 2020-12-26 08:57:52 · 642 阅读 · 0 评论 -
opencv python ORB特征提取
简单的摘抄,不做翻译了。Theory:As an OpenCV enthusiast, the most important thing about the ORB is that it came from “OpenCV Labs”. This algorithm was brought up by Ethan Rublee, Vincent Rabaud, Kurt Konolige and Gary R. Bradski in their paper ORB: An efficient alter转载 2020-12-11 11:07:55 · 2341 阅读 · 2 评论 -
点云可视化 获得与显示bbox
开篇点题,使用open3dimport open3d as o3dimport numpy as npimport timefile_path = '/home/xxx/models/obj_01.ply'pcd = o3d.io.read_point_cloud(file_path)print(pcd)# bboxaabb = pcd.get_axis_aligned_bounding_box()aabb.color = (0, 1, 0)print(np.asarray(aa.翻译 2020-11-28 21:47:14 · 1116 阅读 · 0 评论 -
相机标定 -- 2 从单应矩阵H分解出初始内参A
具体的计算还是看论文o,原理是利用了外参矩阵中旋转矩阵部分的单位正交性。具体实施:对单位正交构造的方程进行变形,利用所有的单应矩阵H的数值构建好V矩阵,构造出关于未知内参数的线性方程组。利用svd求解Vb=0Vb=0Vb=0超定方程,最小特征值对应的特征向量就是我们要求的bbb。根据Appendix_BAppendix \_BAppendix_B,bbb中的数值可以变形出所有的内参数,作为初始值。踩坑:在使用Python求解的时候还有一些细节需要注意,np等函数库求出svd之后,要对..原创 2020-11-08 10:09:13 · 1085 阅读 · 1 评论 -
6DoF位姿估计的度量标准
ADD --Average Distance提出于PoseCNN。已知Ground turthR、TR、TR、T 以及预测结Rp,TpR_p,T_pRp,Tp,用这两个数据对模型点云进行投影,然后求出每个对应点距离的平均值。ADD=1m∑x∈model∣∣(Rx+T)−(Rpx+Tp)∣∣ADD=\frac{1}{m}\sum_{x\in{model}}||(Rx+T) - (R_px+T_p) ||ADD=m1x∈model∑∣∣(Rx+T)−(Rpx+Tp)∣∣如果计算出来的A.原创 2020-11-06 15:44:24 · 3623 阅读 · 6 评论 -
相机标定--1.单应矩阵求解
根据张正友相机标定原理(具体请看论文),首先需要求得单应矩阵,目的是为了得到世界坐标到像素点的映射关系。其中包含了内参和当前标定板下的外参,在后面的标定过程中通过分解单应矩阵得到内外参的初始值。因为论文写的详细,求解方法就是使用最小二乘拟合求解超定方程。在此给出Python程序。import osimport numpy as npimport cv2from scipy import linalgif __name__ == '__main__': print('求..原创 2020-11-04 19:28:53 · 1264 阅读 · 2 评论 -
深度图转点云
使用RGBD相机可以获得一幅depth和RGB,为了获得更加丰富的几何信息,我们想把depth转换成点云。需要准备的数据1.相机内参2.深度图具体计算1.基本的点云有xyzxyzxyz三个坐标,首先我们可以根据深度相机内参scalescalescale和depthdepthdepth图像得到zzz轴坐标2.计算xxx以及yyy的世界坐标从相机内参可以得知焦距fxf_xfx和fyf_yfy,这里只介绍xxx方向的计算,yyy方向同理。记px、pyp_x、p_ypx、py为世界坐标原创 2020-08-17 15:24:55 · 3067 阅读 · 0 评论 -
非极大值抑制 NMS
计算机视觉任务中经常遇到,比如进行目标检测,如果给出了很多可能的提议,就需要选择一个最佳的,否则会有很多overlap。本文实现一个三邻域一维NMS,帮助算法理解。(仅算法原型 有待更新)# 非极大值抑制"""3邻域内,如果是最大的就输出索引 且跳转到i+2如果不是则继续向前爬动,直到当前的大于下一个(且不超出列表长度)"""a = [1, 2, 2, 3, 2, 1, 1...原创 2020-03-07 19:22:12 · 198 阅读 · 0 评论 -
Python 找到凸包 Convex hulls
图形学可以说经常遇到这东西了,这里给出一个库函数的实现from scipy.spatial import ConvexHullpoints = np.random.rand(10, 2) # 30 random points in 2-Dhull = ConvexHull(points)import matplotlib.pyplot as pltplt.plot(points[:,0], points[:,1], 'o')for simplex in hull.simplices: pl.翻译 2020-06-24 18:10:01 · 2338 阅读 · 0 评论 -
三角剖分算法(delaunay)
转载[1]三角剖分算法(delaunay)[2]codeAn Algorithm for Interpolating Irregularly-Spaced Data with Applications in Terrain Modelling[3]webdemohttps://zhiyishou.github.io/Polyer/三角剖分是点云处理基础,Mark一下转载 2020-06-24 16:17:30 · 558 阅读 · 0 评论 -
理解霍夫变换 霍夫投票
B站是个好地方呢https://www.bilibili.com/video/BV1bb411b7VQ?from=search&seid=15036668248515923150转载 2020-04-30 11:24:15 · 3397 阅读 · 0 评论 -
有选择保边缘平滑法对图像进行平滑
不出意外,这是上学期的作业要求:编写一个程序完成如下功能:读入清晰图像,加上椒盐噪声,采用有选择保边缘平滑法对图像进行平滑。该平滑方法可以保护边沿,具体原理见各种参考书和博客,本帖主要是分享一下代码Python Implement'''# 8th编写一个程序完成如下功能:读入清晰图像,加上椒盐噪声采用--有选择保边缘平滑法--对图像进行平滑。'''import...原创 2020-04-25 19:51:00 · 2171 阅读 · 0 评论 -
图像直方图均衡化
作业要求编写一个图像直方图均衡化程序,g=histequal4e(I),其中I是8比特图像代码 '''# 8th编写一个图像直方图均衡化程序,g=histequal4e(I),其中I是8比特图像'''import numpy as npfrom PIL import Imageimport matplotlib.pyplot as plt#einstein.tif...原创 2020-03-09 11:17:16 · 335 阅读 · 0 评论