% 读取图像
image = imread('b.jpg');
% 定义马赛克块的大小
blockSize = 8;
% 分离颜色通道
redChannel = image(:,:,1);
greenChannel = image(:,:,2);
blueChannel = image(:,:,3);
% 均值滤波
meanFiltered = imresize(image, 1/blockSize);
meanFiltered = imresize(meanFiltered, blockSize);
meanFiltered = im2double(meanFiltered);
% 中值滤波
redMedian = medfilt2(im2double(redChannel), [blockSize blockSize]);
redMedian = imresize(redMedian, size(meanFiltered(:,:,1)));
greenMedian = medfilt2(im2double(greenChannel), [blockSize blockSize]);
greenMedian = imresize(greenMedian, size(meanFiltered(:,:,2)));
blueMedian = medfilt2(im2double(blueChannel), [blockSize blockSize]);
blueMedian = imresize(blueMedian, size(meanFiltered(:,:,3)));
% 基于邻域的插值
interpolated = im