Image 如何混淆图像?

Image 如何混淆图像?,image,matlab,image-processing,Image,Matlab,Image Processing,如果输入是一个图像,我的输出应该是原始图像的混乱图像。不需要将图像分割成子块,然后分别对这些区域进行置乱。您可以在一次操作中对整个图像进行置乱。如何在MATLAB中实现这一点?如果你所说的“置乱”是指随机重新排列图像中的像素,你可以创建一个与图像中像素总数相等的随机排列向量,对其进行整形,使其与图像大小相同,然后使用它对其进行索引。具体来说,使用可帮助您完成此操作。作为一个例子,让我们使用cameraman.tif这是MATLAB系统路径的一部分。这样做: im = imread('camera

如果输入是一个图像,我的输出应该是原始图像的混乱图像。不需要将图像分割成子块,然后分别对这些区域进行置乱。您可以在一次操作中对整个图像进行置乱。如何在MATLAB中实现这一点?

如果你所说的“置乱”是指随机重新排列图像中的像素,你可以创建一个与图像中像素总数相等的随机排列向量,对其进行整形,使其与图像大小相同,然后使用它对其进行索引。具体来说,使用可帮助您完成此操作。作为一个例子,让我们使用
cameraman.tif
这是MATLAB系统路径的一部分。这样做:

im = imread('cameraman.tif');
vec = randperm(numel(im));
vec = reshape(vec, size(im));
out = im(vec);
如果要撤消置乱,
vec
包含原始图像中像素需要重新映射到的位置的列主索引。因此,只需分配一个空白图像,然后使用
vec
索引到该空白图像中,然后将
复制出来
返回。这将做的是,它将获取置乱图像中的位置,并将它们复制回由
vec
索引的位置。这基本上消除了我们以前所做的混乱。因此:

reconstruct = zeros(size(im), class(im));
reconstruct(vec) = out;
这是原始图像:

这是加扰图像的外观:

当然看起来很吵!。。。然后就乱了。。。至少我这么认为。通过重建,这就是图像的外观:


对图像进行置乱和解读的关键是让该向量由
randperm
生成。如果你没有这个,那么你就无法重建原始图像


祝你好运

为了提供帮助,你必须更具体地解释你所说的“混乱”是什么意思。类似于?而且,这些说法与我相矛盾:1。无需划分区域和Scrumble2。总图像必须仔细检查…@ParagS.Chandakkar-哇。。。基本上我就是这么做的。酷@rayryeng我想他们还有一个额外的问题,你们应该有同样的功能来进行置乱和解读。