您现在的位置:首页 >> 图像处理 >> 内容

数字彩色图像的水印嵌入仿真,带GUI界面,可以选择图片和水印,可以选择不同的攻击方式验证水印的鲁棒性

时间:2022/12/16 23:14:20 点击:

  核心提示:A123,包括程序操作录像...

1.完整项目描述和程序获取

>面包多安全交易平台:https://mbd.pub/o/bread/Y5qUlJts

>如果链接失效,可以直接打开本站店铺搜索相关店铺:

点击店铺

>如果链接失效,程序调试报错或者项目合作可以加微信或者QQ联系。

2.部分仿真图预览



3.算法概述

        数字水印技术是一种基于内容的、非密码机制的计算机信息隐藏技术。它可以将一些标识信息直接嵌入数字载体当中,且不影响原载体的使用价值,也不容易被探知和再次修改,从而实现保护版权、信息隐藏的功能。数字水印按照特性可以分为鲁棒数字水印和脆弱数字水印。本部分重点研究脆弱数字水印的应用,同时分别分析三种水印算法的机理和效果。

4.部分源码

% --- Executes on button press in pushbutton2.

function pushbutton2_Callback(hObject, eventdata, handles)

% hObject    handle to pushbutton2 (see GCBO)

% eventdata  reserved - to be defined in a future version of MATLAB

% handles    structure with handles and user data (see GUIDATA)

% Image=imread('lena.png');

% Water=imread('water.png');

global src_image;

global src_water;

Image=src_image;

Water=src_water;

[Iwm,Uw,Vw]=EmbedWatermark(Image,Water);

switch get(handles.popupmenu1,'value')

    case 1

    case 2

        number2 = floor(get(handles.slider2,'value')*100);

        if number2==0

            number2 = number2+1;

        end

        Iwm = JPEG2000Attack(Iwm,number2);

    case 3

        number3 = floor(get(handles.slider3,'value')*100);

        Iwm = JPEGAttack(Iwm,number3);

    case 4

        if get(handles.radiobutton1,'value') == 1

            number4 = 1;

        elseif get(handles.radiobutton2,'value') == 1

            number4 = 2;

        else

            number4 = 3;

        end

        Iwm = noiseAttack(Iwm,number4);

    case 5

        if get(handles.radiobutton4,'value') == 1

            number5 = 1;

        elseif get(handles.radiobutton5,'value') == 1

            number5 = 2;

        else

            number5 = 3;

        end

        Iwm = FilterAttack(Iwm,number5);

    case 6

        Iwm = SharpenAttack(Iwm);

    case 7

        Iwm = histeqAttack(Iwm);

end

[WaterR,WaterG,WaterB]=ExtractWatermark(Iwm,Image,Uw,Vw,Water);

axes(handles.axes4)

NCR=ncc(uint8(WaterR),Water);

NCG=ncc(uint8(WaterG),Water);

NCB=ncc(uint8(WaterB),Water);

a=[NCR,NCG,NCB];

[m,p]=max(a);

if p==1

    imshow(uint8(WaterR))

elseif p==2

    imshow(uint8(WaterG))

else

    imshow(uint8(WaterB))

end

set(handles.text2,'String',num2str(NCR))

set(handles.text3,'String',num2str(NCG))

set(handles.text4,'String',num2str(NCB))

msg=msgbox('水印提取完成','完成');

A123

作者:我爱C编程 来源:我爱C编程
本站最新成功开发工程项目案例
相关文章
  • 没有相关文章
相关评论
发表我的评论
  • 大名:
  • 内容:
本类固顶
  • 没有
  • FPGA/MATLAB商业/科研类项目合作(www.store718.com) © 2025 版权所有 All Rights Reserved.
  • Email:1480526168@qq.com 站长QQ: 1480526168