您的位置:首页 > 运维架构

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

2014-12-09 22:22 246 查看
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<height-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<width-border; j++)
		{				
			R = srcData[j*chns];
			G = srcData[j*chns+1];
			B = srcData[j*chns+2];

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



图像2:



图像3:



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

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

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: