目前我参与了一个项目,我有一个二进制(半色调)lena图像,我在下面应用" randperm"用于置换图像的功能。
wm_image = reshape(halftoned(randperm(numel(halftoned))),size(halftoned));
现在,我想要恢复原始的半色调图像。 如果有人可以帮助使用matlab代码吗?
答案 0 :(得分:0)
您需要保存随机排列以“反转”它 所以排列完成了:
rp = randperm(numel(halftoned)); %// save the permutation
wm_image = reshape( hlaftoned( rp ), size(halftoned) );
重建
img(rp) = wm_image;
img = reshape( img, size(halftoned) );
解释img(rp)=wm_image
:
假设你有a
1乘2的向量。命令
a = [4,5];
基本上将4分配给a(1)
,将5分配给a(2)
,也就是说,它是
a([1,2]) = [4,5];
现在,您可以看到有一个映射告诉Matlab将右侧元素放在左侧矩阵中的哪个位置。
您可以更改此映射:
a([2,1]) = [5,4];
结果与a
相同,但结论不同。
希望这可以解决问题。