数学建模社区-数学中国

标题: 那个用魔方拼出的女友头像 [打印本页]

作者: 雪凌寒霜    时间: 2013-4-4 13:14
标题: 那个用魔方拼出的女友头像
本帖最后由 雪凌寒霜 于 2013-4-4 13:17 编辑

    600多个魔方,3000多块钱,好吧,我只想说,不是我不能实现这件事,只是,3000块钱,我觉得对于一个学生来说不是笔小钱了!
    600多个魔方,也就是5400多不到6000像素点,拼出个人物头像,抛开只有六种颜色去表达这幅图像的窘境,这个头像怎么生成?
    好在之前,好吧,表示我完全是在想玩DIY的十字绣时才动手写下了代码(代码略)。当时第一种算法简单,给出颜色数量,然后生成图像,譬如8色32色64色等等。但是这种方法有很多诟病,尤其是不切合实际情况,所以更新了一种算法,算法的思想很简单,就是解析出一张图像的RGB值,然后给出一些线的参数,(在此强调,我想DIY的十字绣,是这样的,不是看你要什么颜色,而是看我手里有什么颜色的线,对不?哈哈)然后生成一张由这些颜色的线组成的一幅图像。
    先来看下效果,第一张图像是原图,《吸血鬼日记》里那个刚开始让我觉得超坏的凯瑟琳。第二张图,是我用市面上算是比较常见的99种色线的颜色编织成的,如果一个十字绣真的用这99种线去绣,出来之后就是这种效果!!
ks.jpg ks99.jpg
    然而就是这样一则新闻让我发现了程序里的一个致命的bug,困扰了我两个星期。知道昨天晚上才意识到,matlab读取到的图像数据类型为uint8,而这种数据类型在做加减运算的时候会有溢出!!!      
    在问题解决之后,我就做了如下这张用魔方的六种颜色,白,橙,黄,红,兰,绿拼成的图像,效果图如下:不过这张图有90000余个像素点,效果不是很好,不过也说得过去啦!重要的是解决这个问题,我就很开心了。
还能认得出来吧!虽然背景已经完全看不清楚了。
    还有一点需要指出的就是,在将图片转换成double后(虽然这步是必须的),其计算速度要远快于之前uint8时的计算速度了。
ks6.jpg
作者: 李频    时间: 2013-4-5 12:49
我怎么觉得像吸血鬼日记里的女主角

作者: 数模hulianyu    时间: 2013-4-5 14:28
厉害!!
作者: 雪凌寒霜    时间: 2013-4-5 19:59
李频 发表于 2013-4-5 12:49
我怎么觉得像吸血鬼日记里的女主角

呵呵,我文章里说了是呀。
作者: 雪凌寒霜    时间: 2013-4-5 19:59
数模hulianyu 发表于 2013-4-5 14:28
厉害!!

,谢谢         
作者: liqiangcug    时间: 2013-4-5 22:38
真心佩服你!!!
作者: 别样风景    时间: 2013-4-5 22:55
额,表示楼主真心挺强大的!
作者: mae_301u    时间: 2013-4-6 20:17
本帖最后由 mae_301u 于 2013-4-6 20:32 编辑

楼主厉害,不过看见楼主做出的图像单种颜色都是连续的,不知道参考下彩色打印的原理会不会更好
作者: mrapple    时间: 2013-4-7 23:31
idea creates miracle
作者: 雪凌寒霜    时间: 2013-4-8 09:26
mae_301u 发表于 2013-4-6 20:17
楼主厉害,不过看见楼主做出的图像单种颜色都是连续的,不知道参考下彩色打印的原理会不会更好

有时间我看看,没接触过这些原理,也没有什么机会接触,。现在已经工作了,平常能用来看书的时间不是很多。
作者: 光之仑    时间: 2013-4-15 22:20
很厉害呀                     
作者: 天涯若水    时间: 2013-4-19 14:34
有源码吗??
作者: wanganfu    时间: 2013-6-2 08:09
楼主很不错哦,有点创意哦。赞个
作者: 一米阳光的ta    时间: 2014-5-31 09:13
好强,,,,赞一个、、
作者: i狗仔    时间: 2014-7-18 20:59
好强大,赞
作者: xxaxiuxluo    时间: 2014-8-8 08:23
高手啊!!!
作者: hahaxiong    时间: 2016-9-4 08:22
太厉害,你是怎么开始的?

作者: 睁开眼时光交错    时间: 2016-9-4 08:43
谢谢楼主分享

作者: 且听风吟画船    时间: 2016-9-4 22:34
666666,哈哈





欢迎光临 数学建模社区-数学中国 (http://www.madio.net/) Powered by Discuz! X2.5