Professional Documents
Culture Documents
Pixel Swapping.m
Pixel Swapping.m
Pixel Swapping.m
j = 1 : imsize(2) % first condition |Ha(i,j)| --- (1) if(cover_img_A(i, j) == 1) % second condition |Hb(i,j)| != |S(i,j)| ----- (2) if((cover_img_B(i, j) ~= secret_img(i, j)) ... && (swapped(i,j) ~= 1)) select_mn_and_swap(i, j); end end end end share_img_B = cover_img_B; function select_mn_and_swap(i, j) % lower bound value for row if(i <= 3) lrow = 1; else lrow = i - 3; end % lower bound value for column if(j <= 3) lcol = 1; else lcol = j - 3; end % upper bound value for row if(i + 3 <= imsize(1)) urow = i+3; else urow = i; end % upper bound value for column if(j + 3 <= imsize(2)) ucol = j+3; else ucol = j; end for m = i : i % lrow : urow for n = lcol : ucol % |Hb(i,j)| != |Hb(m,n)| --- (3) if(cover_img_B(i,j) ~= cover_img_B(m, n)) % |Ha(m,n)| = 0 OR (|Ha(m,n)| = 1 and |s(m,n)| != % |Hb(m,n)| if((cover_img_A(m,n) == 0) || ... (cover_img_A(m, n) == 1 && ... secret_img(m,n) ~= cover_img_B(m,n))) % d(Hb(i,j), Hb(m,n)) <= r if(euclidian_dist(i, j, m, n) <= radius)
% both Hb(i,j) and Hb(m,n) are not swapped yet if(swapped(i,j) == 0 && swapped(m,n) == 0) % s(i,j) = s(m,n) if(secret_img(i, j) == secret_img(m,n)) swapped(i,j) = 1; swapped(m,n) = 1; cover_img_B(i, j) = ~cover_img_B(i, j); cover_img_B(m, n) = ~cover_img_B(m, n); return; end end end end end end end end function dist = euclidian_dist(i, j, m, n) % euclidian distance formula dist = sqrt(((m - i)^2)+((n -j)^2)); end end