图片的马赛克处理
原理如下:
图像打码其实也是图像卷积操作中,空间域滤波的一种方式,用一定大小的滤波器对马赛克范围内像素进行操作。实现过程:将需要打马范围按照滤波器大小划分为多个区块,取滤波器范围内像素,求取均值,再将均值赋值给范围内每一个像素,滤波器再滑到下一个区块。
package com.itinspur.demo;
import javax.imageio.ImageIO;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
/**
* 图像马赛克原理及其实现
* @program: practice_masaike
* @author: csl
* @create: 2021-02-23 09:55
*/
public class MosaicFilter {
/**
* @author: csl
*对整个图片进行马赛克处理
*对整张图像打码。对整张图片打码也叫做像素格特效,我们只需要考虑滤波器大小即可。
* @param image 获取到的图片流对象
* @param length 设置的马赛克的大小
*/
public void imageMosaic(BufferedImage image,int length){
//从流对象中获取相应图片的信息
//得到图片的宽度
int width = image.getWidth();
//得到图片的高度
int height = image.getHeight();
int size = length * length;
int x= width / length;
int y=height / length;
for (int i=0;i<x;i++){
for(int j=0;j<y;j++){
int R=0,G=0,B=0;
for(int m=0; m<length; m++){
for(int n