数字图像处理风格化效果——马赛克处理

马赛克处理

马赛克效果,其原理是将图像从形式上划分为很多小块(5*5),在每块内的各个像素都取到相同的红、绿、蓝颜色值,如块内任意一像素的值。从而对某些细节进行模糊化处理,使图像具有马赛克效果。

//马赛克
//
Mat	Mosaic(Mat src, int rectangleLenth) {
	Mat output(src.size(), CV_8UC3);

	//取中心的像素值
	for (int i = 0; i < src.rows; i += rectangleLenth) {
		for (int j = 0; j < src.cols; j += rectangleLenth) {
			//对矩形区域内的每一个像素值进行遍历
			for (int k = i; k < rectangleLenth + i && k < src.rows; k++) {
				for (int m = j; m < rectangleLenth + j && m < src.cols; m++) {
					//在这里进行颜色的修改
					output.at<Vec3b>(k, m)[0] = src.at<Vec3b>(i + rectangleLenth / 2, j + rectangleLenth / 2)[0];
					output.at<Vec3b>(k, m)[1] = src.at<Vec3b>(i + rectangleLenth / 2, j + rectangleLenth / 2)[1];
					output.at<Vec3b>(k, m)[2] = src.at<Vec3b>(i + rectangleLenth / 2, j + rectangleLenth / 2)[2];
				}
			}
		}
	}
	return output;

}

原图

数字图像处理风格化效果——马赛克处理_第1张图片

效果

数字图像处理风格化效果——马赛克处理_第2张图片

你可能感兴趣的:(图像处理,opencv,计算机视觉,c++,数字图像处理,图像处理)