今天晚上没有课, 花了几分钟, 还是按照我昨天的思路把那个人脸变换程序实现了一下. 特地选了两张比较像的照片(人头的大小, 背景颜色, 脸的朝向), 其实也是自己截出来的, 还调整了不少, 才做到了"相似".

       变到     效果:   

  代码部分跟昨天相比稍微变了一点点, 就是实现了两张位图每个点的计算, 在Form的客户区打印出来.

 1 private void DrawPic(object sender, PaintEventArgs e)
 2 {
 3     using (Bitmap bmp1 = new Bitmap(@"C:\liang.png"))
 4     using (Bitmap bmp2 = new Bitmap(@"C:\liu.png"))
 5     {
 6        Bitmap bm = new Bitmap(1, 1); //画一个点,调整这个点的大小
 7         Graphics g = Graphics.FromHwnd(this.Handle);//这个点画在哪里
 8         int X, Y;
 9         for (X = 0; X < 160; X++)
10             for (Y = 0; Y < 180; Y++)
11             {
12                 Color pixelColor1 = bmp1.GetPixel(X, Y); //[X][Y]点坐标的颜色
13                 Color pixelColor2 = bmp2.GetPixel(X, Y);
14                 int red = (pixelColor2.R - pixelColor1.R)[* ?/?] + pixelColor1.R;
15                 int green =(pixelColor2.G - pixelColor1.G)[* ?/?] + pixelColor1.G;
16                 int blue = (pixelColor2.B - pixelColor1.B)[* ?/?] + pixelColor1.B;
17                 Color drawcolor = Color.FromArgb(red, green, blue);
18                 bm.SetPixel(0, 0, drawcolor);//"画点", 这个点的颜色
19                 g.DrawImageUnscaled(bm, X, Y);//开始在[X][Y]点画了
20             }
21     }
22 }

  想想昨天那个一个点一个点输出位图, 都是一竖行一竖行的输出, 效果不行. 今天就只想输出10帧, 然后每帧都截图, 再用其它的图片制作软件把这10帧放在一起做成闪图的那种样式, 试试效果. 其中代码中红色标记的部分代表乘以一个数, 比如这次要运行处10帧中的第3帧, 红色部分就写成*3/10, 一次一次的试, 呵呵.

  通过上图可以发现效果跟视频中程序的效果是不一样的. 如果仔细看视频中效果的做法, 可能就就如昨天辰评论说的那样:

      1. 两张图片共同分割为大小相同的小块n
      2. 第2张图的第n块黏贴到第一张图中
      3. 保存图片为一个新的名字, 例如bmp001
      4. 如此循环, 直到所有小块都被复制到第一张图
      5. 打开acdsee,然后用迅雷不及掩耳盗铃的速度, 切换所有保存的图片, 就可以看到效果

  所以我这种方法感觉有些山寨, 或者说呆笨. 当然这种山寨的做法也不是没有收获的, 仔细看其中的某些帧, 比如刘德华肩膀位置的西装, 梁朝伟图片的那个位置是没有衣服的, 只有背景. 让梁朝伟这个位置的颜色变成刘德华相应的点颜色, 在变化的过程中可以看出有一种半透明的效果, 当然在NET中早有定义颜色有这种半透明效果的函数, 现在自己无意间实现了一下:)

  感谢大家对我上一篇人脸变换程序究竟要如何实现的指点, 有些博友贴上自己辛苦写的代码, 感慨万分啊. 也许我不该瞎嚷嚷, 连Computer Graphic还没学, 就在这嚷嚷这个东西, 是不是有点不应该? 也许最起码等我应该有点这方面的基础...搞的大家写的代码我都无法再给予回复(因为我不懂, 不知道写什么好, 只是心中默默的感谢...等我强大了, 只要博客园不消失, 再回头看看).

  这种程序的实现, 也有一种说法是识别人脸, 比如识别两张图片人的鼻子, 眼睛, 嘴巴...然后进行拉伸, 变行, 颜色的改变. 貌似Flash中早有这种技术(把一个方形变成圆形, 不知是不是也是这种原理?)

  总之, 要学习的还有很多很多, 加油, 愿每天都能进步一点点:-)

转载于:https://www.cnblogs.com/top5/archive/2010/04/11/1709453.html

C#梁朝伟变刘德华之山寨实现相关推荐

  1. 梁朝伟变刘德华之山寨实现

    今天晚上没有课, 花了几分钟, 还是按照我昨天的思路把那个人脸变换程序实现了一下. 特地选了两张比较像的照片(人头的大小, 背景颜色, 脸的朝向), 其实也是自己截出来的, 还调整了不少, 才做到了& ...

  2. [转贴]“山寨”之现状分析

    "山寨"之现状分析 "以子之矛,攻子之盾",结果会如何? 3月15日,河南郑州紫荆山广场举行"3·15国际消费者权益日"活动,长相酷似&qu ...

  3. 为什么下拉框拉不下来_太气人了!《除暴》吴彦祖的浴巾为什么就是掉不下来?...

    <除暴>算是近期可以看的电影了,首周末2亿票房也算是证明了这点,也难怪,最近真的是想看电影但没什么好的电影可以看.<除暴>这部电影最吸引人的不是90年代的警匪之间的斗智斗勇,更 ...

  4. 万字详解:腾讯如何自研大规模知识图谱 Topbase

    作者:郑孙聪,腾讯 TEG 应用研究员 Topbase 是由 TEG-AI 平台部构建并维护的一个专注于通用领域知识图谱,其涉及 226 种概念类型,共计 1 亿多实体,三元组数量达 22 亿.在技术 ...

  5. 80后,我们难忘的电视剧

    说起来,每一种传播媒介对于不同年代出生的人都有着特殊的意义和感情,就好像电影之于50.60年代,电视之于70.80年代,网络之于90.00年代一样.对于80后来说,电视剧这种题材在我们成长的历程中扮演 ...

  6. 一年赚上亿的生意_甩过梅艳芳,做生意一年赚几亿,他竟然火了快四十年

    前几天是是三哥苗侨伟妻子戚美珍57岁的生日,又正好临近两人29年结婚纪念日. 于是夫妻二人办了盛大派对,不少圈中好友来到场祝贺. 什么曾志伟.谭咏麟.古天乐.黄日华.郑则仕.谢天华.佘诗曼.林峯.吴卓 ...

  7. Java塈百日而求新,念三番未发,其一

    Java集合框架详解 集合 概念:对象的容器,定义了对多个对象进行操作的常用方法.可实现数组的功能. 和数组的区别: 数组长度固定,集合长度不固定 数组可以存储基本类型和引用类型,集合只能存储引用类型 ...

  8. 一个优雅的女人是不生气的——林志玲的经典语录

    最初看到林志玲我是觉得她又不漂亮又爱发嗲,对她特别没有好感.可是随着对她的了解,越发的喜欢这个女人:一个绝顶聪明优雅得体的女人,一个家教良好处事不惊的女人. 1.加油! 这句话似乎和"林志玲 ...

  9. 腾讯:专注于通用领域的知识图谱—Topbase 学习笔记

    https://zhuanlan.zhihu.com/p/145112755 来源为 万字详解:腾讯如何自研大规模知识图谱 Topbase 一.简介 知识图谱( Knowledge Graph)以结构 ...

最新文章

  1. ajax对象状态0,ajax返回readyState为0?
  2. Semplice Linux 3.0.0 发布
  3. Halcon的数据类型
  4. linux shell 单行多行注释
  5. 一级计算机基础第四套,《计算机应用基础》第四套考试与答案.doc
  6. PHP实现定时任务的几种方法
  7. ACL 2021 | ConSERT:基于对比学习的句子语义表示迁移框架
  8. 第八届“图灵杯”NEUQ-ACM程序设计竞赛个人赛(同步赛)解题报告
  9. git获取管理员权限 windows,windows下git怎么管理权限
  10. leetcode 102 java_Java实现 LeetCode 102 二叉树的层次遍历
  11. Hopfield神经网络的联想记忆——数字识别的一些笔记
  12. java极光推送demo_Java集成极光推送
  13. 【SpringBoot 】 组件管理 ,java工程师面试突击中华石杉
  14. Unity 性能优化方法总结
  15. 概率论基础(3)一维随机变量(离散型和连续型)
  16. opencv-------高斯滤波
  17. MybatisPlus:使用SQL保留字(关键字)
  18. 学习笔记 Unsupervised Domain Adaptive Re-Identification: Theory and Practice
  19. QUECTEL上海移远4G通讯CAT4模组EC20CEFAG模块串口调试指南之04【EC20模组SIM卡和驻网模组指令说明】
  20. Ubuntu下使用GCC开发STM32的环境的搭建

热门文章

  1. Volatility内存分析工具 - 某即时通讯软件Windows端数据库密钥的分析
  2. ffmpeg视频按帧截取图片和ffmpeg将图片合成mp4视频
  3. ICESSL使用备忘
  4. 修改和重新封装了一个GHOST XP
  5. 清华学生告诉你什么是清华!
  6. ShanaEncoder 官网链接
  7. 上千年等待终唤“热潮“,汉服的未来会一帆风顺吗?
  8. 2019年大厂面试题合集:Java架构师技术栈为什么竞争越来越激烈?程序员必看!
  9. 通过棱镜门看事物的联系
  10. 小小爬虫很狂暴-----day01