1

Discrete Wavelet Transform(DWT) と暗号化を使用した画像の透かしに関するプロジェクトを行っています。以下の手順で実施しました

1.) 選択されたホスト画像 (透かしが非表示になる画像)。
2.) 透かしを選択しました。
3.) 次のコード (Matlab コード) を使用して暗号化された透かし

    b= strcat(b,a);   %String Concatenation
    c=imread(b);     %Image is read and stored in the variable c
    [p,q,r]=size(c); %displaying the dimensions of Image
    % Cipher watermark %
    % this is a randperm method which generated  random values
    scrambleOrder = randperm(p*q); 
    redChannel = c(:, :, 1);  % Extraction of red channel
    greenChannel = c(:, :, 2); % Extraction of green channel
    blueChannel = c(:, :, 3); % Extraction of blue channel
    redChannel = redChannel(scrambleOrder); % Red channel scrambling
    greenChannel = greenChannel(scrambleOrder); % Green channel scrambling
    blueChannel = blueChannel(scrambleOrder); % Blue channel scrambling
    redChannel = reshape(redChannel, [p,q]);  % reshaping red channel 
    greenChannel = reshape(greenChannel, [p,q]); % reshaping green channel 
    blueChannel = reshape(blueChannel, [p,q]); % reshaping blue channel 
    s = cat(3, redChannel, greenChannel, blueChannel); % cat command for concatenation

4.) DWT を使用して透かしを入れます。

5.) 回復式を使用して、暗号化された透かしを回復します。

6.) 以下のコードを使用した透かしの解読。

     % it will generate the 2 columns having maximum value u*v and  where u and v are dimensions(width and height) of recovered watermark from watermarked image. 
     recoverOrder = zeros([u*v], 2); 
     recoverOrder(:, 1) = 1 : (u*v); % make the first column value from 1: u*v 
     recoverOrder(:, 2) = scrambleOrder; % make second column value of randon permutation generated during encryption
     newOrder1 = sortrows(recoverOrder, 2); % sort rows of column1 and column 2
     newOrder = newOrder1(:,1); Eliminate column2
     redChannel = redChannel(newOrder); % New order value into red channel
     greenChannel = greenChannel(newOrder); % New order value into green channel
     blueChannel = blueChannel(newOrder); % New order value into blue channel
     redChannel = reshape(redChannel, [u, v]); % reshape red channel
     greenChannel = reshape(greenChannel, [u, v]); % reshape green channel
     blueChannel = reshape(blueChannel, [u, v]); % reshape blue channel
     D = cat(3, redChannel, greenChannel, blueChannel); % cat RGB and store it in D

私の質問は、回転、スケーリング、クロッピングなどの透かし付きの画像に対して多くの攻撃を行ったが、PSNR と (透かしと復号化された透かし) の間の MSE は変化していないということです。復号化中に、画像の暗号化に使用されるのと同じランド順列を使用したと思います。

その背後にある理由を理解するための貴重な提案があれば、それを理解することができます。

4

0 に答える 0