Внедрение цифрового знака в изображение

Автор работы: Пользователь скрыл имя, 04 Декабря 2014 в 02:14, курсовая работа

Описание работы

Цифровой водяной знак должен отвечать следующим требованиям:
– незаметность для пользователей;
– индивидуальность алгоритма нанесения;
– возможность для автора обнаружить несанкционированное использование файла;
– невозможность удаления неуполномоченными лицами;

Содержание работы

Введение……………………………………………………………………………...5Алгоритм внедрения цифрового водяного знака.……………….……..………….6
Инициализация начальных параметров……………………………………………7
Внедрение цифрового знака в изображение……………………………………….8 Алгоритм извлечения цифрового водяного знака из изображения……………...10 Алгоритм извлечения водяного знака из изображения, подверженного атаке…11 Результаты моделирования и численных расчетов……………………………….13 Пример реализации алгоритма в среде Matlab……………………………………15 Заключение…………………………………………………………………………..18 Список использованной литературы………………

Файлы: 1 файл

Шевелькурсовая.docx

— 394.21 Кб (Скачать файл)

 

                                  в

а – гистограмма исходного изображения; б – гистограмма маркированного изображения при α = 0.07; в – гистограмма маркированного изображения при α = 0.1

Рисунок 7.2 – Сравнение гистограмм при разных коэффициентах α

 

 

        PSNR полученного изображения, при выборе коэффициента α = 0.1, составляет 25dB. PSNR извлеченного водяного знака, при коэффициенте α = 0.1, составляет 73dB.

         При увеличении коэффициента α, снижается качество маркированного изображение, но повышается качество извлеченного водяного знака. Поэтому перед началом внедрения ЦВЗ в изображение необходимо рассчитать оптимальный коэффициент встраивания α.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

8. Пример внедрения водяного знака (qr-кода) в изображение

 

     Исходный код программы в приложении B

     В данном  алгоритме мы производим операции  с изображением. Внедряем в исходное  изображение qr код. Извлекаем из маркированного изображения водяной знак, и рассчитываем качество внедрения (PSNR).

                              а                                                            б

                              в                                                           г

а – исходное изображение; б – водяной знак; в – маркируемое изображение; г – извлеченный водяной знак

Рисунок 8.1 – Полученные изображения при коэффициенте α = 0.07

PSNR полученного изображения, при выборе коэффициента α = 0.07, составляет 28dB. PSNR извлеченного водяного знака, при коэффициенте α = 0.07, составляет 277dB.

        Гистограмма  оригинального изображения имеет  небольшие отличия от гистограммы  маркированного изображения (α = 0.07), что говорит о хорошем качестве  встраивания, но при α = 0.1, гистограммы  сильно различаются.

                                 а                                                                б     

           в 

а – гистограмма исходного изображения; б – гистограмма маркированного изображения при α = 0.07; в – гистограмма маркированного изображения при α = 0.1

Рисунок 8.2 – Сравнение гистограмм при разных коэффициентах α

 

 

        PSNR полученного изображения, при выборе коэффициента α = 0.1, составляет 26dB. PSNR извлеченного водяного знака, при коэффициенте α = 0.1, составляет 282dB.

         При увеличении коэффициента  α, снижается качество маркированного изображение, но повышается качество извлеченного водяного знака. Поэтому перед началом внедрения ЦВЗ в изображение необходимо рассчитать оптимальный коэффициент встраивания α.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Заключение

        Предложен  алгоритм, основанный на встраивании  цифровых водяных знаков (ЦВЗ) в  пространственную область изображения  и извлечения из него ЦВЗ. Получены  аналитические выражения для  среднеквадратической ошибки,

вызываемой процедурой встраивания при наличии случайной атаки, зависящие от характеристик изображений, процедуры встраивания и атаки. Методом моделирования исследовалась устойчивость предложенного алгоритма к случайной атаке, а также к сжатию изображения по стандарту JPEG.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

                СПИСОК ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ

 

1. Cox J., Miller M. L. and Bloom J.A. Digital Watermarking. - Morgan Kaufmann, 2001.

2. Hartung M., Kutter M. Multimedia Watermarking Techniques //Proceedings of the IEEE. – July,

1999. - Vol. 87, № 7. - P. 1079-1086.

3. Anand D., Niranjan U.C. Watermarking Medical Images with Patient Information //Proc. IEEE/EMSB

Conference. - Hong Kong, China, Oct. 1998. – P. 703-706.

4. Асатрян Д.Г., Ланина Н.С. Адаптивный алгоритм встраивания цифровых водяных знаков в

изображение //Труды научной годичной конференции Российско-Армянского (Славянского)

государственного университета. - Ереван, 2006. - Т.1. - C. 87-90.

5. Podilchuk C I., Zeng W. Image-adaptive watermarking using visual models //IEEE Journal of Selected

Areas in Communication. – 1998. - 16(4). – P. 525–539.

6. Chang-Hsing Lee, Yeuan-Kuen Lee. An Adaptive Digital Image Watermarking Technique for

Copyright Protection // IEEE Transactions on Consumer Electronics. – 1999. - V. 45, № 4. - P. 1005-

1015.

7. Asatryan D.G., Lanina N.S., Shahverdyan H.S. Adaptive Robust Algorithm for Digital Watermarking

of Medical Images //Proc. of 6th Int. Conf. on Computer Science and Information Technologies -

CSIT'2007. - Yerevan, 2007. - P. 161-164.

 

 

 

 

 

 

 

 

 

 

 

 

                                          Приложение А

clear;

clc

img=imread('F:\works\kursa4\lena.png');

img=imresize(img,[512,512]);

img=rgb2gray(img);

[M,N]=size(img);

img=double(img);

[Uimg,Simg,Vimg]=svd(img);

Simg_temp=Simg;

img_wat=imread('F:\works\kursa4\shevel.png');

img_wat=imresize(img_wat,[512,512]);

img_wat=rgb2gray(img_wat);

   alfa= input('The alfa Value = ');

   [x,y]=size(img_wat);

   img_wat=double(img_wat);

   for i=1:x

       for j=1:y

          Simg(i,j)=(1-alfa)*Simg(i,j) + alfa * img_wat(i,j);

       end

   end

    % SVD for Simg (SM)

[U_SHL_w,S_SHL_w,V_SHL_w]=svd(Simg);

Wimg =Uimg* S_SHL_w * Vimg';

figure(1)

imhist(uint8(img));

title('Histogramma of original image')

figure(2)

imshow(uint8(img));

title('The Original Image')

figure(3)

imshow(uint8(img_wat));

title('The Watermark ')

figure(4)

imshow(uint8(Wimg));

title('The Watermarked Image')

figure(5)

imhist(uint8(Wimg));

title('Histogramma of watermarking image')

%%%%%%%%%%%%%%%%%%%%%%%%%%%

%calculate image quality degradation after inserting watermark

%%%%%%%%%%%%%%%%%%%%%%%%%%%

mse=mean(squeeze(sum(sum((double(img)-double(Wimg)).^2))/(M*N)));

PSNR=10*log10(255^2./mse);

msg=sprintf('\n\n-------------------------\nWatermark by SVD  PSNR=%fdB\n-----------------------------\n\n', PSNR);

    disp(msg);

%--------------------------------------------------------------------------

% %% Extraction Part

% -------------------------------------------------------------------------

[UWimg,SWimg,VWimg]=svd(Wimg);

D_1=U_SHL_w * SWimg * V_SHL_w';

for i=1:x

  for j=1:y

     Watermark(i,j)= (D_1(i,j) - Simg_temp(i,j)*(1-alfa))/alfa;

  end

end

figure(6)

imshow(uint8(Watermark));

title('The Extracted Watermark ')

mse=mean(squeeze(sum(sum((double(img_wat)-(Watermark)).^2))/(M*N)));

PSNR=10*log10(255^2./mse);

msg=sprintf('\n\n-------------------------\nWatermark by SVD  PSNR=%fdB\n-----------------------------\n\n', PSNR);

                                             

 

 

 

 

                                              Приложение B

clear;

clc

img=imread('F:\works\kursa4\lena.png');

img=imresize(img,[512,512]);

img=rgb2gray(img);

[M,N]=size(img);

img=double(img);

[Uimg,Simg,Vimg]=svd(img);

Simg_temp=Simg;

% read watermark

img_wat=imread('F:qrkod.png');

img_wat=imresize(~img_wat,[512,512]);

   alfa= input('The alfa Value = ');

   [x,y]=size(img_wat);

      img_wat=double(img_wat);

     for i=1:x

       for j=1:y

          Simg(i,j)=(1-alfa)*Simg(i,j) + alfa * img_wat(i,j);

       end

   end

    % SVD for Simg (SM)

[U_SHL_w,S_SHL_w,V_SHL_w]=svd(Simg);

Wimg =Uimg* S_SHL_w * Vimg';

figure(1)

imhist(uint8(img));

title('Histogramma of original image')

figure(2)

imshow(uint8(img));

title('The Original Image')

figure(3)

imshow(img_wat);

title('The Watermark ')

figure(4)

imshow(uint8(Wimg));

title('The Watermarked Image')

figure(5)

imhist(uint8(Wimg));

title('Histogramma of watermarking image')

%%%%%%%%%%%%%%%%%%%%%%%%%%%

%calculate image quality degradation after inserting watermark

%%%%%%%%%%%%%%%%%%%%%%%%%%%

mse=mean(squeeze(sum(sum((double(img)-double(Wimg)).^2))/(M*N)));

PSNR=10*log10(255^2./mse);

msg=sprintf('\n\n-------------------------\nWatermark by SVD  PSNR=%fdB\n-----------------------------\n\n', PSNR);

    disp(msg);

%--------------------------------------------------------------------------

% %% Extraction Part

% -------------------------------------------------------------------------

[UWimg,SWimg,VWimg]=svd(Wimg);

D_1=U_SHL_w * SWimg * V_SHL_w';

for i=1:x

  for j=1:y

     Watermark(i,j)= (D_1(i,j) - Simg_temp(i,j)*(1-alfa))/alfa;

  end

end

figure(6)

imshow(Watermark);

title('The Extracted Watermark ')

mse=mean(squeeze(sum(sum((double(img_wat)-(Watermark)).^2))/(M*N)));

PSNR=10*log10(255^2./mse);

msg=sprintf('\n\n-------------------------\nWatermark by SVD  PSNR=%fdB\n-----------------------------\n\n', PSNR)

 

 


Информация о работе Внедрение цифрового знака в изображение