前言随着圣诞的到来,大家纷纷@官方微信给自己的头像加上一顶圣诞帽。当然这种事情用很多P图软件都可以做到。但是作为一个学习图像处理的技术人,还是觉得我们有必要写一个程序来做这件事情。而且这完全可以作为一个练手的小项目,工作量不大,而且很有意思。用到的工具OpenCV(毕竟我们主要的内容就是OpenCV...)dlib(dlib的人脸检测比OpenCV更好用,而且dlib有OpenCV没有的关键点检测。)用到的语言为Python。但是完全可以改成C++版本,时
系统 2019-09-27 17:49:23 2414
enumerate函数enumerate是一个Python内置函数,一个功能强大的内置函数。其实功能强大不足以形容它,但是很难用一个词来形容它的用途。让我们来看看一个使用enumerate进行循环的例子names=['李四','张三','王二']forindex,nameinenumerate(names):print(f'{index}:{value}')下面是这个循环的结果0:李四1:张三2:王二这通常是一个很有用的方式去循环,但很多初学者甚至中级开发
系统 2019-09-27 17:48:12 2414
上一篇文章介绍了线程的使用。然而Python中由于GlobalInterpreterLock(全局解释锁GIL)的存在,每个线程在在执行时需要获取到这个GIL,在同一时刻中只有一个线程得到解释锁的执行,Python中的线程并没有真正意义上的并发执行,多线程的执行效率也不一定比单线程的效率更高。如果要充分利用现代多核CPU的并发能力,就要使用multipleprocessing模块了。0x01multipleprocessing与使用线程的threading
系统 2019-09-27 17:47:03 2414
迪杰斯特拉(Dijkstra)算法主要是针对没有负值的有向图,求解其中的单一起点到其他顶点的最短路径算法。1算法原理迪杰斯特拉(Dijkstra)算法是一个按照路径长度递增的次序产生的最短路径算法。下图为带权值的有向图,作为程序中的实验数据。其中,带权值的有向图采用邻接矩阵graph来进行存储,在计算中就是采用n*n的二维数组来进行存储,v0-v5表示数组的索引编号0-5,二维数组的值表示节点之间的权值,若两个节点不能通行,比如,v0->v1不能通行,那么
系统 2019-09-27 17:46:36 2414
一直以来被Linux的hostname和fqdn(FullyQualifiedDomainName)困惑了好久,今天专门抽时间把它们的使用细节弄清了。一、设置hostname/fqdn在Linux系统内设置hostname很简单,如:$hostnameflorian如果要设置fqdn的话,需要对/etc/hosts进行配置。$cat/etc/hosts127.0.0.1localhost192.168.1.1florian.test.comflorian/
系统 2019-09-27 17:38:33 2414
Python3,开一个线程,间隔1秒把一个递增的数字写入队列,再开一个线程,从队列中取出数字并打印到终端复制代码代码如下:#!/usr/bin/envpython3importtimeimportthreadingimportqueue#一个线程,间隔一定的时间,把一个递增的数字写入队列#生产者classProducer(threading.Thread):def__init__(self,work_queue):super().__init__()#必须
系统 2019-09-27 17:37:44 2414
看了"臧圩人"的一片多线程文章,根据自己的想法才写出这篇过于java多线程的文章。一、怎样实现多线程:1.1实现多线程:1.1.1、实现线程的方式有两种:1、继承java.lang.Thread,并重写它的run()方法,将线程的执行主体放入其中。2、实现java.lang.Runnable接口,实现它的run()方法,并将线程的执行主体放入其中。1.1.2、这是继承Thread类实现线程的示例:Java代码publicclassThreadTestext
系统 2019-08-29 23:48:26 2414
向量负责用于计算力,绘图库负责把向量表示出来下面是匀速圆周运动的例子图片如下:codeimportVector;importfbook.graphics.pen.*;importfbook.graphics.draw2d.*;importfbook.graphics.draw2d.arrow.*;importfbook.graphics.GDI;varcur_mc=this;//给球的即时速度,看受力图时可加大速度varvel=newVector(200,
系统 2019-08-29 23:35:56 2414
本文为原创,如需转载,请注明作者和出处,谢谢!上一篇:Struts1.x系列教程(12):Validator验证框架的内置标准验证Struts2教程10:国际化对于一个面向全球的Web应用程序,按着不同国家的要求显示相关信息(称为国际化)显得尤为重要。国际化的工作非常复杂和繁琐。因为要翻译很多Web界面,信息格式等。然而,Struts为我们提供了完成国际化工作的更容易的方式。在本文将介绍如何使用Struts来简化国际化的工作。一、处理客户端界面的编码问题由
系统 2019-08-29 23:31:22 2414
虽然现在云计算应用主要以由AmazonEC2为代表的IaaS(基础设施即服务)服务和由SalesforceCRM为代表的SaaS(软件即服务)服务为主,而PaaS(平台即服务)服务则处于比较“小众”的阶段,但是由于PaaS服务在开发环境、管理、伸缩、整合率和经济性等方面的优势,使得其的未来非常值得看好,所以基于YunTable的PaaS服务YunEngine诞生了,虽然YunEngine的长远目标是超越GoogleAppEngine,也就是比GoogleA
系统 2019-08-29 23:24:46 2414