自己编码使用去色、曲线、色阶算法实现照片怀旧特效。
2013-12-06 10:43
288 查看
天下文章一大抄,看你会抄不会抄,这个算法的初步雏形其实很简单,很多傻瓜级的软件业提供了相应的一键功能,比如美图秀秀。其实这就是个简单的调色功能,实现的方式五花八门,没有一个固定的标准,我们下面仅以几个开源的软件中的算法为例来说明实现过程。
第一的参考算法是来自Paint.net的,在专业的软件中,这个功能的英文一般称之为Sepia,在Paint.net中,这个算法实现的主要代码如下:
即先去色,然后再执行色阶命令,似乎很简单,而我们先看看效果。
View Code
你如果在网络上搜索PS+老照片效果,你会发现这其实只是处理过程中占有比例很小的一部分,但是这一部分却对最终的效果起到了铺垫的作用。也就是说,仅仅通过这一过程,只是获得老照片效果的基础,一个出色的自动老照片滤镜还需要更多的其他处理,比如老照片必然存在一些皱褶,边缘部位很有可能有磨损,图片周边一般比较偏暗等等。这些过程的实现需要较强的编码能力和创造力,在GIMP中存在一个old photo插件,可以实现较为出色的效果,并且这个是个开源的软件,有想开发此类算法的朋友应该去参考下。
相关程序下载: http://files.cnblogs.com/Imageshop/OldPhoto.rar
*********************************作者: laviewpbt 时间: 2013.12.6 联系QQ: 33184777 转载请保留本行信息************************
第一的参考算法是来自Paint.net的,在专业的软件中,这个功能的英文一般称之为Sepia,在Paint.net中,这个算法实现的主要代码如下:
this.desaturate = new UnaryPixelOps.Desaturate(); this.levels = new UnaryPixelOps.Level( ColorBgra.Black, ColorBgra.White, new float[] { 1.2f, 1.0f, 0.8f }, ColorBgra.Black, ColorBgra.White);
即先去色,然后再执行色阶命令,似乎很简单,而我们先看看效果。
byte[] Table = { 0,0,0, 43,28,4, 57,35,5, 65,35,6, 66,36,7, 67,37,8, 68,38,9, 69,39,10, 70,40,11, 71,41,12, 72,42,13, 73,43,14, 74,44,15, 75,45,16, 76,46,17, 77,47,18, 78,48,19, 79,49,20, 80,50,21, 81,51,22, 82,52,23, 83,53,24, 83,53,24, 84,54,25, 85,55,26, 86,56,27, 87,57,28, 88,58,29, 89,59,30, 90,60,31, 91,61,32, 92,62,33, 93,63,34, 94,64,35, 95,65,36, 96,66,37, 97,67,38, 98,68,39, 99,69,40, 100,70,41, 101,71,42, 102,72,43, 103,73,44, 104,74,45, 105,75,46, 106,76,47, 107,77,48, 107,77,48, 108,78,49, 109,79,50, 110,80,51, 111,81,52, 112,82,53, 113,83,54, 114,84,55, 115,85,56, 116,86,57, 117,87,58, 118,88,59, 119,89,60, 120,90,61, 121,91,62, 122,92,63, 123,93,64, 124,94,65, 125,95,66, 125,95,66, 126,96,67, 127,97,68, 128,98,69, 129,99,70, 130,100,71, 131,101,72, 132,102,73, 133,103,74, 134,104,75, 135,105,76, 136,106,77, 137,107,78, 138,108,79, 139,109,80, 140,110,81, 141,111,82, 142,112,83, 143,113,84, 144,114,85, 145,115,86, 146,116,87, 147,117,88, 148,118,89, 149,119,90, 150,120,91, 151,121,92, 152,122,93, 153,123,94, 154,124,95, 155,125,96, 156,126,97, 157,127,98, 158,128,99, 159,129,100, 160,130,101, 161,131,102, 162,132,103, 163,133,104, 164,134,105, 165,135,106, 166,136,107, 167,137,108, 168,138,109, 169,139,110, 170,140,111, 171,141,112, 172,142,113, 173,143,114, 174,144,115, 175,145,116, 176,146,117, 177,147,118, 178,148,119, 179,149,120, 180,150,121, 181,151,122, 182,152,123, 183,153,124, 184,154,125, 185,155,126, 186,156,127, 187,157,128, 187,157,128, 188,158,129, 189,159,130, 190,160,131, 191,161,132, 192,162,133, 193,163,134, 194,164,135, 195,165,136, 196,166,137, 197,167,138, 198,168,139, 199,169,140, 200,170,141, 201,171,142, 202,172,143, 203,173,144, 204,174,145, 205,175,146, 206,176,147, 207,177,148, 208,178,149, 209,179,150, 210,180,151, 211,181,152, 212,182,153, 213,183,154, 214,184,155, 215,185,156, 216,186,157, 217,187,158, 218,188,159, 219,189,160, 220,190,161, 221,191,162, 222,192,163, 223,193,164, 224,194,165, 225,195,166, 226,196,167, 227,197,168, 228,198,169, 229,199,170, 230,200,171, 231,201,172, 232,202,173, 233,203,174, 234,204,175, 235,205,176, 236,206,177, 237,207,178, 238,208,179, 239,209,180, 240,210,181, 241,211,182, 242,212,183, 243,213,184, 244,214,185, 245,215,186, 246,216,187, 247,217,188, 248,218,189, 249,219,190, 250,220,191, 251,221,192, 252,222,193, 253,223,194, 254,224,195, 255,225,196, 255,225,196, 255,225,196, 255,225,196, 255,225,196, 255,225,197, 255,225,197, 255,225,197, 255,225,197, 255,226,198, 255,226,198, 255,226,198, 255,226,198, 255,226,198, 255,226,199, 255,226,199, 255,226,199, 255,226,199, 255,226,199, 255,227,200, 255,227,200, 255,227,200, 255,227,200, 255,227,200, 255,227,201, 255,227,201, 255,227,201, 255,227,201, 255,227,201, 255,228,202, 255,228,202, 255,228,202, 255,228,202, 255,228,202, 255,228,202, 255,228,203, 255,228,203, 255,228,203, 255,228,203, 255,228,203, 255,229,204, 255,229,204, 255,229,204, 255,229,204, 255,229,204, 255,229,204, 255,229,205, 255,229,205, 255,229,205, 255,229,205, 255,229,205, 255,230,205, 255,230,205, 255,231,205, 255,231,209, 255,233,214, 255,233,217, 255,242,233, 255,255,255 };
View Code
你如果在网络上搜索PS+老照片效果,你会发现这其实只是处理过程中占有比例很小的一部分,但是这一部分却对最终的效果起到了铺垫的作用。也就是说,仅仅通过这一过程,只是获得老照片效果的基础,一个出色的自动老照片滤镜还需要更多的其他处理,比如老照片必然存在一些皱褶,边缘部位很有可能有磨损,图片周边一般比较偏暗等等。这些过程的实现需要较强的编码能力和创造力,在GIMP中存在一个old photo插件,可以实现较为出色的效果,并且这个是个开源的软件,有想开发此类算法的朋友应该去参考下。
相关程序下载: http://files.cnblogs.com/Imageshop/OldPhoto.rar
*********************************作者: laviewpbt 时间: 2013.12.6 联系QQ: 33184777 转载请保留本行信息************************
相关文章推荐
- 自己编码使用去色、曲线、色阶算法实现照片怀旧特效。
- 自己编码使用去色、曲线、色阶算法实现照片怀旧特效
- 使用opencl实现编码算法中运动搜索模块速度对比
- LK光流算法中是怎么使用金字塔的(就一个截图,大概明白点就行,毕竟有函数不必自己实现)
- 自己实现的一个Cache 使用最近常使用算法
- 使用原生JS实现弹出层特效
- 使用lua实现几个小算法
- 使用popwindow实现自己的下拉列表
- SilverLight企业应用框架设计【五】客户端调用服务端(使用JSON传递数据,自己实现RESTful Web服务)
- IOS 使用Http模拟SOAP请求Webservice时内容Unicode编码的实现
- 使用iconv命令轻松实现linux下字符集编码的转换
- 使用存储过程实现进销存系统中的先进先出算法(1)――数据库与存储过程设计
- JEECMS站群管理系统-- 自定义标签及使用自己创建的表的实现过程
- IBM 实现使用称为 mark-sweep-compact(MSC)的垃圾收集算法
- 384位NIST素域椭圆曲线快速约减算法x64编程实现研究(上)
- 自己定义托付实现各种算法
- Bellman算法优化使用邻接表C++实现
- 使用win8 r2的故障转移集群实现双机热备(自己实现)
- 使用 2D 方法实现倒影特效
- 使用scikit-learn实现决策树的算法模板