如何使人脸图像混乱



我想打乱一张人脸图像。我不知道matlab编程中的哪个命令会让我的脸乱七八糟。你能指出我吗?

现在我想通过洗牌它的像素来打乱它。

你可以将 randperm 和 reshape 结合起来,就像这样:

img = reshape(img(randperm(numel(img))), size(img));

替代解决方案:"按像素块加扰"

你可以这样做:

img = imread('http://www.ricbit.com/uploaded_images/lena-713374.jpg');
blockSize = 64;
nRows = size(img, 1) / blockSize;
nCols = size(img, 2) / blockSize;
scramble = mat2cell(img, ones(1, nRows) * blockSize, ones(1, nCols) * blockSize, size(img, 3));
scramble = cell2mat(reshape(scramble(randperm(nRows * nCols)), nRows, nCols));
subplot(1,2,1), imshow(img); title('Source image');
subplot(1,2,2), imshow(scramble); title('Scrambled image');

其中blockSize是块的宽度和高度,以像素为单位(例如:64 x 64)

注意:块大小必须是原始图像宽度和高度值的通用因素。

最新更新