Обратная ошибка тасования изображений в Matlab - PullRequest
0 голосов
/ 12 июня 2018

Я реализовал технику перетасовки изображений, используя карту Хенона на изображениях в градациях серого.Перетасовка изображения работала со мной.Однако, когда я перетасовываю его обратно к оригиналу, я получаю изображение с черными пикселями, разбросанными вокруг восстановленного изображения.См. Прилагаемое изображение результатов, а также код Matlab.

enter image description here

clear all
clc
g=imread('cameraman.tif');
original=g;
[m,n]=size(g);
%g = imresize(g, [255 255]);
g=g(:,:,1);
subplot(2,2,1)
imshow(g,[])
title('Original Image')
   %HENON SHUFFLING
    [m,n]=size(g);
     a = 3;
     b = 3;
    num_iter = 5;
     for k=1:num_iter
    for i=1:m
        for j=1:n
            r = mod([round(abs(1-(a*(i^2))+j)),round(abs(b*i))],[m n]);
             x(i,j)=g(r(1)+1,r(2)+1);
         end
     end
      g=x;
     end
     subplot(2,2,2)
     imshow(x,[]);
     title('Henon Shuffled Image')
     %HENON INVERSE SHUFFLING
     [m,n]=size(x);
     a = 3;
     b = 3;
    num_iter = 5;
     for k=1:num_iter
    for i=1:m
        for j=1:n
    r1 = mod([round(abs(1-(a*(i^2))+j)),round(abs(b*i))],[m n]);
    x1(r1(1)+1,r1(2)+1)=x(i,j);
    %x(i,j)=x1(r(1)+1,r(2)+1);
         end
     end
      x=x1;
     end
     subplot(2,2,3)
     imshow(x1,[]);
     title('Henon Inverse Shuffled')   
     set(gcf,'units','normalized','outerposition',[0 0 1 1]);
...