热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

PhotoShop算法实现高级篇--连环画(三十四)

PhotoShop算法实现高级篇--连环画(三十四)kezunhai@g

PhotoShop算法实现高级篇--连环画(三十四)

kezunhai@gmail.com

http://blog.csdn.net/kezunhai

           连环画(Comic)对于每一个经过孩童时代的我们来说都不陌生,点着蜡烛、打着手电躲在被窝里看杨家将、隋唐演义的场景还历历在目。通过Photoshop也可以实现连环画的效果。 连环画的核心算法如下图所示(算法来自:图像编程精髓:从开发自己的Photoshop开始):


// 连环画
void PhotoShop::Comic(Mat& img, Mat &dst)
{
if ( dst.empty())
dst.create(img.rows, img.cols, img.type());

int height = img.rows;
int width = img.cols;
int chns = img.channels();
int border = 1;
int i, j, k;

uchar R, G, B;

for ( i=border; i {
unsigned char* srcData = (unsigned char*)img.data + img.step*i;
unsigned char* dstData = (unsigned char*)dst.data + dst.step*i;
for ( j=border; j {
R = srcData[j*chns];
G = srcData[j*chns+1];
B = srcData[j*chns+2];

dstData[j*chns] = saturate_cast(abs(G-B+G+R)*R/256+0.5);
dstData[j*chns+1] = saturate_cast(abs(B-G+B+R)*R/256+0.5);
dstData[j*chns+2] = saturate_cast(abs(B-G+B+R)*G/256+0.5);
}
}
}
处理图像1:


图像2:


图像3:


看了上面的几张图片,是不是有点失望,以上算法与实际的连环画的效果还是有很大的距离的。如果要真的用算法来实现连环画的效果,需要对用PS来制作连环画的过程进行仔细的分析,逐步解析其算法过程。PS制作连环画的教程可以参考:用photoshop将照片改为连环画效果。

作者:kezunhai 出处:http://blog.csdn.net/kezunhai 欢迎转载或分享,但请务必声明文章出处。


推荐阅读
  • HTML 中的 meta 和 script 标签属性是否区分大小写? ... [详细]
  • 推荐一款出色的移动应用原型设计工具——Tiggr(http://gotiggr.com)。该工具基于Flash技术开发,支持Web、iPhone和Android等多种平台的原型设计。虽然需要注册账号才能使用,但其强大的功能和易用性使其成为开发者和设计师的理想选择。 ... [详细]
  • Java能否直接通过HTTP将字节流绕过HEAP写入SD卡? ... [详细]
  • MyISAM和InnoDB是MySQL中最为广泛使用的两种存储引擎,每种引擎都有其独特的优势和适用场景。MyISAM引擎以其简单的结构和高效的读取速度著称,适用于以读操作为主、对事务支持要求不高的应用。而InnoDB引擎则以其强大的事务处理能力和行级锁定机制,在需要高并发写操作和数据完整性的场景下表现出色。选择合适的存储引擎应综合考虑业务需求、性能要求和数据一致性等因素。 ... [详细]
  • SSL 错误:目标主机名与备用证书主题名称不匹配
    在使用 `git clone` 命令时,常见的 SSL 错误表现为:无法访问指定的 HTTPS 地址(如 `https://ip_or_domain/xxxx.git`),原因是目标主机名与备用证书主题名称不匹配。这通常是因为服务器的 SSL 证书配置不正确或客户端的证书验证设置有问题。建议检查服务器的 SSL 证书配置,确保其包含正确的主机名,并确认客户端的证书信任库已更新。此外,可以通过临时禁用 SSL 验证来排查问题,但请注意这会降低安全性。 ... [详细]
  • C++ 开发实战:实用技巧与经验分享
    C++ 开发实战:实用技巧与经验分享 ... [详细]
  • 提升学习效率不仅需要正确的方法,还需要一些实用的小技巧。本文总结了多条有助于提高学习效果的建议,包括合理安排时间、选择合适的学习环境、运用记忆技巧等。通过这些方法,可以帮助学生更好地集中注意力,提高学习效率,达到事半功倍的效果。 ... [详细]
  • 本文全面解析了JavaScript中的DOM操作,并提供了详细的实践指南。DOM节点(Node)通常代表一个标签、文本或HTML属性,每个节点都具有一个nodeType属性,用于标识其类型。文章深入探讨了DOM节点的创建、查询、修改和删除等操作,结合实际案例,帮助读者更好地理解和掌握DOM编程技术。 ... [详细]
  • Presto:高效即席查询引擎的深度解析与应用
    本文深入解析了Presto这一高效的即席查询引擎,详细探讨了其架构设计及其优缺点。Presto通过内存到内存的数据处理方式,显著提升了查询性能,相比传统的MapReduce查询,不仅减少了数据传输的延迟,还提高了查询的准确性和效率。然而,Presto在大规模数据处理和容错机制方面仍存在一定的局限性。本文还介绍了Presto在实际应用中的多种场景,展示了其在大数据分析领域的强大潜力。 ... [详细]
  • CSS3 @font-face 字体应用技术解析与实践
    在Web前端开发中,HTML教程和CSS3的结合使得网页设计更加多样化。长期以来,Web设计师受限于“web-safe”字体的选择。然而,CSS3中的`@font-face`规则允许从服务器端加载自定义字体,极大地丰富了网页的视觉效果。通过这一技术,设计师可以自由选择和使用各种字体,提升用户体验和页面美观度。本文将深入解析`@font-face`的实现原理,并提供实际应用案例,帮助开发者更好地掌握这一强大工具。 ... [详细]
  • `chkconfig` 命令主要用于管理和查询系统服务在不同运行级别中的启动状态。该命令不仅能够更新服务的启动配置,还能检查特定服务的当前状态。通过 `chkconfig`,管理员可以轻松地控制服务在系统启动时的行为,确保关键服务正常运行,同时禁用不必要的服务以提高系统性能和安全性。本文将详细介绍 `chkconfig` 的各项参数及其使用方法,帮助读者更好地理解和应用这一强大的系统管理工具。 ... [详细]
  • Windows环境下RabbitMQ安装详尽指南
    Windows环境下RabbitMQ安装详尽指南 ... [详细]
  • 在Java中,静态代码块和构造方法的执行顺序是一个重要的概念。本文详细分析了类加载过程中静态代码块和构造方法的执行流程。通过具体的示例代码,解释了静态变量初始化、静态代码块以及构造方法之间的相互关系和执行顺序。这对于理解类的初始化过程和确保程序的正确性具有重要意义。 ... [详细]
  • 在VS2013中编译FFMPEG时遇到的问题及解决方案
    在使用VS2013编译旧版本FFMPEG库时遇到了一些问题,因为官方并未提供预编译的LIB和DLL文件。由于对Linux环境不熟悉,只能在Windows环境下进行配置和编译。具体步骤如下:首先,下载FFMPEG的源代码;然后,安装必要的编译工具和依赖项;接着,配置Visual Studio 2013的项目设置;最后,解决编译过程中出现的各种错误和警告。通过这些步骤,最终成功编译出所需的FFMPEG库文件。 ... [详细]
  • FCKeditor 是一款功能强大的文本编辑组件,适用于各种 Web 应用程序。官方提供的下载链接如下:https://jaist.dl.sourceforge.net/sourceforge/fckeditor/FCKeditor_2.4.2.zip此版本为 2.4.2,用户可以通过该链接直接下载安装包,以便在项目中集成使用。FCKeditor 支持多种浏览器,并提供了丰富的配置选项和插件,能够满足不同开发需求。 ... [详细]
author-avatar
mobiledu2502869467
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有