Python
文章平均质量分 65
咆哮的阿杰
吾生也有涯,而知也无涯
展开
-
网格细分 mesh subdivision相关资料以及python代码
其中threshold控制是否细分,如果mesh的最长的边小于threshold,就不分割。首先根据github中pymeshlab的readme安装好pymeshlab。以上代码和用meshlab GUI的loop算法一样。推荐使用pymeshlab。原创 2022-09-02 20:17:53 · 805 阅读 · 0 评论 -
SVD求解两个点集之间的刚体运动,即旋转矩阵和平移向量。
给出两个点集A和B,求解点集之间的刚体变化,包含scale,rotation,translate。使其A经过变换之后,可以和B在空间上对齐。原创 2022-08-19 22:26:58 · 1629 阅读 · 0 评论 -
sklearn中的SparseCoder是什么?又该如何使用
SparseCoder的应用场景不多,因为本身无法考虑更多的约束,比如加入不等式,就不好求解了。SparseCoder其实是一个最优化求解方法。它所处理的对象是线性方程。因为3dmm的公式中。就有求表情基系数的地方,而那里是线性方程。在3dmm人脸重建中,可以应用SparseCoder。则可以使用SparseCoder。...原创 2022-08-15 23:22:57 · 602 阅读 · 1 评论 -
Python多进程池的使用详解,以及结合tqdm进度条的使用
进程池是为了简化多进程任务而生。当我们有大量的任务,其处理函数都是相同的,或者只是函数参数不同。这种情况,直接生成和任务数量相同的进程是极其消耗资源的(比如用Process和for依次生成进程)。这个时候就非常适合使用进程池Poolimport multiprocessing as mpn_proc = 5pool = mp.Pool(n_proc)以上代码生成了5个进程的池子。最多可以同时运行5个相同的函数。pool类有以下4种非常常用的类型。apply:阻塞,任务其实是一个一个执行完的。原创 2021-08-06 22:41:20 · 11914 阅读 · 2 评论 -
详解Python修饰器(语法糖)
Python的修饰器(decorator)是一个非常强大的功能,一种优秀的设计模式,将重复的内容抽象出来,赋予一个函数其他的功能,但又不去改变函数自身。使得代码极其简洁,易于维护。为了能够初步了解修饰器的作用,我们先从一个简单的例子开始。1.simple example现在有很多个函数,我们需要得到每个函数的运行时间。为了简单描述,我只用一个函数举例子。函数功能很简单def foo(): print('hello')现在想给这个函数计算一下执行时间def foo(): t1 =原创 2020-07-15 14:30:51 · 11559 阅读 · 7 评论 -
Python中map和filter的使用方法
filter和map是python中常常被使用的两个方法。这两个方法的使用方法很相似:相同点:第一个参数都是一个函数第二个参数是一个可迭代序列返回可迭代对象不同点:filter的第一个参数是函数,这个函数是用来判断条件的map的第一个函数也是函数,但这个函数是用来做映射的。mapa = [3,4,1,2,54,6]b = list(map...原创 2019-08-19 22:23:59 · 2877 阅读 · 0 评论 -
Python中 * 的用途
在Python中, * 不仅仅代表乘法和列表复制,还常常用于函数的实参传递,和形参接收中。作为实参传递def div(a,b): print(a/b)div(*(1,2))这里, *号的作用是将可迭代序列拆开,作为函数的实参。另外, **(两个*)可以用于字典。def div(a,b): print(a/b)params = {'a':1,'b...原创 2019-08-19 22:47:29 · 9647 阅读 · 1 评论 -
Python中bisect的使用方法
bisect是python内置模块,用于有序序列的插入和查找。查找: bisect(array, item) 插入: insort(array,item)查找import bisecta = [1,4,6,8,12,15,20]position = bisect.bisect(a,13)print(position)# 用可变序列内置的insert方法插入a.in...原创 2019-08-25 14:44:00 · 52052 阅读 · 7 评论 -
Python中array的一些用法
array(数组)适合仅仅对数字且是同一类型的数字操作,当这种情况下,数组会比list更加高效,因为array内部实际上是C语言的数组,所以在新建array的时候,我们也需要向C一样提供数据的类型。例如:array('b',(1,2,3)); # 有符号int8array('d',(1,2,3)); # 双精度doublearray还提供了保存到硬盘和从硬盘读取的方法,其速度也...原创 2019-08-25 16:13:08 · 8276 阅读 · 0 评论