如何让脸部图像争抢?

时间:2014-04-06 18:34:17

标签: matlab

我想要抓住一张脸部图像。我不知道matlab编程中的哪个命令会让我的脸变得混乱。你能指点我吗?

现在我想通过改变它的像素来加扰它。

1 个答案:

答案 0 :(得分:0)

您可以合并randpermreshape,如下所示:

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)

注意: blockSize必须是原始图像宽度和高度值的公因子。