我们在对图像做仿射变换时得到的点一般情况下并不会是整数点,在改进篇中,简单起见,我直接对得到的点直接进行了取整,所以在面部有的地方看起来会很模糊。除了取整,最常用的有二种方法:最邻近插值法和双线性插值法,今天我们就用双线性插值法来改进原来的算法。

我们在对图像做仿射变换时得到的点一般情况下并不会是整数点,在改进篇中,简单起见,我直接对得到的点直接进行了取整,所以在面部有的地方看起来会很模糊。除了取整,最常用的有二种方法:最邻近插值法和双线性插值法,今天我们就用双线性插值法来改进原来的算法。
上次在缺陷中有提到,在对Baby上的三角形ABC和对应的Parent上的DEF进行仿射变换后,总是不可避免的会空隙使得生成的图片带有“划痕”。经过几天的不眠日,今天总算解决了这个问题!吼吼~~
BabyMaker需要“预测”未来孩子的长相,一种显而易见的实现思路:取出父母照片上比较明显的特征(如眉毛、眼睛),与模板库的Baby按照某个比例进行图像混合,输出融合后的Baby即可。第一个步骤因为有Luxand SDK变得很简单,第二步图像混合也非常简单,但这里有个问题:Parent器官的相对位置和Baby的相对位置不一致,如果强行融合结果会非常别扭(比如两只嘴巴),所以在融合前我们必须对图片进行变形使相对位置一致,这里介绍人脸变形的实现。
在图像处理时,我们会经常需要判断一个点是否位于多边形区域内,这里介绍2种比较巧妙的算法。
BabyMaker项目中几个Model之间的关系有一对多,多对多,如果用ORM可以直接对对象进行操作及读取存储List,可以简单很多,还有个就是可以自动建表,我最喜欢的地方。。。.Net下的ORM框架有很多,这里记录下在ASP.NET中配置NHibernate的一些步骤。
上篇有提到BabyMaker项目需要提取照片中人的肤色,我对于图像处理一直停留在零经验,在翻阅数篇论文依旧毫无思路准备放弃之际,看到了一个大牛用C#写的肤色检测算法,算法可以去除图片中和皮肤无关的信息,仅保留皮肤。
最近作业中需要实现以下功能:1. 图书到期前提醒;2. 图书如果过期每天需要扣N元钱。3. 如果过期超过M天则锁定改账户。这3个需求其实都是定时任务,项目架构是SSH,Spring框架支持Java 的Timer类,用来实现上述功能非常简单。
.net架构与程序设计的大作业需要提取人脸特征(变态的作业),这让我发现了Luxand FaceSDK,它可以从一张给定的照片中得到到人脸位置,并从中提取特征点信息,提供了C#、C++、Java等API,超级强大。。。