雪凌寒霜 发表于 2013-4-4 13:14

那个用魔方拼出的女友头像

本帖最后由 雪凌寒霜 于 2013-4-4 13:17 编辑

    600多个魔方,3000多块钱,好吧,我只想说,不是我不能实现这件事,只是,3000块钱,我觉得对于一个学生来说不是笔小钱了!
    600多个魔方,也就是5400多不到6000像素点,拼出个人物头像,抛开只有六种颜色去表达这幅图像的窘境,这个头像怎么生成?
    好在之前,好吧,表示我完全是在想玩DIY的十字绣时才动手写下了代码(代码略)。当时第一种算法简单,给出颜色数量,然后生成图像,譬如8色32色64色等等。但是这种方法有很多诟病,尤其是不切合实际情况,所以更新了一种算法,算法的思想很简单,就是解析出一张图像的RGB值,然后给出一些线的参数,(在此强调,我想DIY的十字绣,是这样的,不是看你要什么颜色,而是看我手里有什么颜色的线,对不?哈哈)然后生成一张由这些颜色的线组成的一幅图像。
    先来看下效果,第一张图像是原图,《吸血鬼日记》里那个刚开始让我觉得超坏的凯瑟琳。第二张图,是我用市面上算是比较常见的99种色线的颜色编织成的,如果一个十字绣真的用这99种线去绣,出来之后就是这种效果!!

    然而就是这样一则新闻让我发现了程序里的一个致命的bug,困扰了我两个星期。知道昨天晚上才意识到,matlab读取到的图像数据类型为uint8,而这种数据类型在做加减运算的时候会有溢出!!!      
    在问题解决之后,我就做了如下这张用魔方的六种颜色,白,橙,黄,红,兰,绿拼成的图像,效果图如下:不过这张图有90000余个像素点,效果不是很好,不过也说得过去啦!重要的是解决这个问题,我就很开心了。
还能认得出来吧!虽然背景已经完全看不清楚了。
    还有一点需要指出的就是,在将图片转换成double后(虽然这步是必须的),其计算速度要远快于之前uint8时的计算速度了。

李频 发表于 2013-4-5 12:49

我怎么觉得像吸血鬼日记里的女主角

数模hulianyu 发表于 2013-4-5 14:28

厉害!!{:soso_e114:}

雪凌寒霜 发表于 2013-4-5 19:59

李频 发表于 2013-4-5 12:49 static/image/common/back.gif
我怎么觉得像吸血鬼日记里的女主角

呵呵,我文章里说了是呀。

雪凌寒霜 发表于 2013-4-5 19:59

数模hulianyu 发表于 2013-4-5 14:28 static/image/common/back.gif
厉害!!

:),谢谢         

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 static/image/common/back.gif
楼主厉害,不过看见楼主做出的图像单种颜色都是连续的,不知道参考下彩色打印的原理会不会更好

有时间我看看,没接触过这些原理,也没有什么机会接触,:)。现在已经工作了,平常能用来看书的时间不是很多。
页: [1] 2
查看完整版本: 那个用魔方拼出的女友头像