PhotoShop算法实现高级篇--马赛克(三十八)

PhotoShop算法实现高级篇--马赛克(三十八)

[email protected]

http://blog.csdn.net/kezunhai

        曾经看到一句话:阻止人类进步的最大障碍——马赛克。马赛克的发明者一定也想不到该技术对社会产生了如此重大的影响,也一定不曾想到会被调侃成阻止人类进步的最大障碍(对于岛国的******情有独钟,就另论~?~)。

         其实马赛克的实现技术很简单,就是让图像中的所有像素成块状,而每个块的颜色则取决于块内像素的平均值或块内像素的随机值。 算法实现很简单(用当前像素来代替块内像素):

// 马赛克
void PhotoShop::Masic(Mat& img, Mat& dst, int nSize)  
{  
	if ( dst.empty())
		dst.create(img.rows, img.cols, img.type());

	int offset = (nSize-1)/2;  
	int height = img.rows;
	int width = img.cols;
	for ( int row = offset; row <height - offset; row= row+2*offset)  
	{  
		for( int col= offset; col<width - offset; col = col+2*offset)  
		{  
			int val0 = getPixel(img, row, col, 0);  
			int val1 = getPixel(img, row, col, 1);  
			int val2 = getPixel(img, row, col, 2);  
			for ( int m= -offset; m<offset; m++)  
			{  
				for ( int n=-offset; n<offset; n++)  
				{  
					setPixel(dst, row+m, col+n, 0, val0);  
					setPixel(dst, row+m, col+n, 1, val1);  
					setPixel(dst, row+m, col+n, 2, val2);  
				}  
			} // for m 
		}  // for col
	}  // for row
} 
       第一张块较小:

PhotoShop算法实现高级篇--马赛克(三十八)_第1张图片

再来一张块大的:

 

       再来一张阻止人类进步的:

PhotoShop算法实现高级篇--马赛克(三十八)_第2张图片

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


你可能感兴趣的:(马赛克,PhotoShop算法)