亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? gui_wm.m

?? 實現(xiàn)小波數(shù)字水印
?? M
字號:
function varargout = GUI_WM(varargin)
% GUI_WM M-file for GUI_WM.fig
%      GUI_WM, by itself, creates a new GUI_WM or raises the existing
%      singleton*.
%
%      H = GUI_WM returns the handle to a new GUI_WM or the handle to
%      the existing singleton*.
%
%      GUI_WM('CALLBACK',hObject,eventData,handles,...) calls the local
%      function named CALLBACK in GUI_WM.M with the given input arguments.
%
%      GUI_WM('Property','Value',...) creates a new GUI_WM or raises the
%      existing singleton*.  Starting from the left, property value pairs are
%      applied to the GUI before GUI_WM_OpeningFunction gets called.  An
%      unrecognized property name or invalid value makes property application
%      stop.  All inputs are passed to GUI_WM_OpeningFcn via varargin.
%
%      *See GUI Options on GUIDE's Tools menu.  Choose "GUI allows only one
%      instance to run (singleton)".
%
% See also: GUIDE, GUIDATA, GUIHANDLES

% Edit the above text to modify the response to help GUI_WM

% Last Modified by GUIDE v2.5 12-Jun-2008 12:37:15

% Begin initialization code - DO NOT EDIT
gui_Singleton = 1;
gui_State = struct('gui_Name',       mfilename, ...
                   'gui_Singleton',  gui_Singleton, ...
                   'gui_OpeningFcn', @GUI_WM_OpeningFcn, ...
                   'gui_OutputFcn',  @GUI_WM_OutputFcn, ...
                   'gui_LayoutFcn',  [] , ...
                   'gui_Callback',   []);
if nargin && ischar(varargin{1})
    gui_State.gui_Callback = str2func(varargin{1});
end

if nargout
    [varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
else
    gui_mainfcn(gui_State, varargin{:});
end
% End initialization code - DO NOT EDIT


% --- Executes just before GUI_WM is made visible.
function GUI_WM_OpeningFcn(hObject, eventdata, handles, varargin)
% This function has no output args, see OutputFcn.
% hObject    handle to figure
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
% varargin   command line arguments to GUI_WM (see VARARGIN)

global w
global o

%讀取宿主圖像
o=imread('lena.jpg');
axes(handles.axes1);
imshow(o);
set(handles.axes1,'xtick',[],'ytick',[],'ztick',[],'box','off');
axis image off;

%讀取水印
w=imread('watermark.jpg');
axes(handles.axes3);
imshow(w);
set(handles.axes3,'xtick',[],'ytick',[],'ztick',[],'box','off');
axis image off;

axes(handles.axes2);
set(handles.axes2,'xtick',[],'ytick',[],'ztick',[],'box','off');
axis image off;

axes(handles.axes4);
set(handles.axes4,'xtick',[],'ytick',[],'ztick',[],'box','off');
axis image off;

axes(handles.axes5);
set(handles.axes5,'xtick',[],'ytick',[],'ztick',[],'box','off');
axis image off;

axes(handles.axes6);
set(handles.axes6,'xtick',[],'ytick',[],'ztick',[],'box','off');
axis image off;

% Choose default command line output for GUI_WM
handles.output = hObject;

% Update handles structure
guidata(hObject, handles);

% UIWAIT makes GUI_WM wait for user response (see UIRESUME)
% uiwait(handles.figure1);


% --- Outputs from this function are returned to the command line.
function varargout = GUI_WM_OutputFcn(hObject, eventdata, handles) 
% varargout  cell array for returning output args (see VARARGOUT);
% hObject    handle to figure
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)

% Get default command line output from handles structure
varargout{1} = handles.output;


% --- Executes on button press in pushbutton1.
function pushbutton1_Callback(hObject, eventdata, handles)
% hObject    handle to pushbutton1 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)

global Ln
global o
global w
global wl
global N
global r
global PSNRH
global WLoc

set(handles.text7,'string','正在置亂水印,請稍候...');

%水印置亂
Ln=10;
wl=Arnold(w,Ln);
axes(handles.axes4);
imshow(wl);
set(handles.axes4,'xtick',[],'ytick',[],'ztick',[],'box','off');
axis image off;

set(handles.text7,'string','正在嵌入水印,請稍候...');

%位圖分解
wb=Bitdecom(wl);

%重新組合
wb1=[wb(:,:,1) wb(:,:,2) wb(:,:,3) wb(:,:,4)];
wb2=[wb(:,:,5) wb(:,:,6) wb(:,:,7) wb(:,:,8)];
wb3=[wb1;wb2];

%化為二進(jìn)制數(shù)據(jù)流
wbs=reshape(wb3,1,64*64*8);

%量化數(shù)組的長度
N=findobj('tag','edit1');
N=get(N,'string');
N=str2num(N);

%嵌入水印
o=double(o);
[WLoc,CA,CH,CV,CD]=Embed(o,wbs,N);

%重構(gòu)嵌入水印后的宿主圖像
r=IDWT2(CA,CH,CV,CD,'haar');
r=uint8(r);
axes(handles.axes2);
imshow(r);
set(handles.axes2,'xtick',[],'ytick',[],'ztick',[],'box','off');
axis image off;

%計算宿主圖像峰值信噪比
r=double(r);
PSNRH = sum(sum((r-o).^2))/512/512;
PSNRH = 10*log10(255^2/PSNRH);
PSNRH=sprintf('%.2f',PSNRH);
MSE{1}='水印嵌入完畢!';
MSE{2}=strcat('重構(gòu)后的宿主圖像峰值信噪比為',PSNRH,'DB');
set(handles.text7,'string',MSE);

% --- 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)

global Ln
global wl
global N
global r
global PSNRH
global WLoc

set(handles.text7,'string','正在提取水印,請稍候...');
%提取二進(jìn)制數(shù)據(jù)流
wbsr=Extract(r,WLoc,N);

%轉(zhuǎn)為為矩陣
wb3r=reshape(wbsr,128,256);

%重新組合
for i=1:8
    rm=ceil(i/4);
    cn=i-(rm-1)*4;
    wbr(:,:,i)=wb3r(1+64*(rm-1):64+64*(rm-1),1+64*(cn-1):64+64*(cn-1));
end

%位圖重構(gòu)
wlr=Bitrecon(wbr);

%計算水印峰值信噪比
wl=double(wl);
PSNRW = sum(sum((wlr-wl).^2))/64/64;
PSNRW = 10*log10(255^2/PSNRW);

%顯示提取的置亂水印
wlr=uint8(wlr);
axes(handles.axes5);
imshow(wlr);
set(handles.axes5,'xtick',[],'ytick',[],'ztick',[],'box','off');
axis image off;

%進(jìn)行置亂逆變換,顯示水印
wr=iArnold(wlr,Ln);
axes(handles.axes6);
imshow(wr);
set(handles.axes6,'xtick',[],'ytick',[],'ztick',[],'box','off');
axis image off;

PSNRW=sprintf('%.2f',PSNRW);
MSE{1}=strcat('重構(gòu)后的宿主圖像峰值信噪比為',PSNRH,'DB');
MSE{2}=strcat('提取的水印峰值信噪比為',PSNRW,'DB');
set(handles.text7,'string',MSE);



function edit1_Callback(hObject, eventdata, handles)
% hObject    handle to edit1 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)

% Hints: get(hObject,'String') returns contents of edit1 as text
%        str2double(get(hObject,'String')) returns contents of edit1 as a double


% --- Executes during object creation, after setting all properties.
function edit1_CreateFcn(hObject, eventdata, handles)
% hObject    handle to edit1 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    empty - handles not created until after all CreateFcns called

% Hint: edit controls usually have a white background on Windows.
%       See ISPC and COMPUTER.
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
    set(hObject,'BackgroundColor','white');
end

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲视频一区在线| 久久久久亚洲综合| 亚洲一区影音先锋| 欧美视频精品在线观看| 亚洲国产日韩av| 日韩欧美专区在线| 国产精品99久久久| 国产片一区二区| 一本到一区二区三区| 午夜精品久久久久久不卡8050| 欧美一区中文字幕| 久久99国产精品尤物| 国产亚洲污的网站| 91麻豆精品在线观看| 亚洲国产精品一区二区久久恐怖片| 日韩视频在线你懂得| 国产成人在线影院| 亚洲综合无码一区二区| 日韩一区二区三区在线观看| 国产一区二区影院| 亚洲免费三区一区二区| 欧美日本在线看| 国产高清一区日本| 亚洲五月六月丁香激情| wwwwxxxxx欧美| 色噜噜久久综合| 看片的网站亚洲| 亚洲欧美二区三区| 日韩免费看的电影| 91蝌蚪国产九色| 日本亚洲最大的色成网站www| 国产色一区二区| 欧美日韩性生活| 国产超碰在线一区| 婷婷中文字幕一区三区| 日本一区二区三区久久久久久久久不 | 2020国产精品| 在线观看免费一区| 成人影视亚洲图片在线| 日产精品久久久久久久性色 | 国产精品美女久久福利网站 | 91网站视频在线观看| 奇米精品一区二区三区四区| 国产精品青草久久| 91精品国产综合久久婷婷香蕉 | 亚洲一区二区视频在线观看| 国产女同互慰高潮91漫画| 911国产精品| 91久久久免费一区二区| 国产盗摄精品一区二区三区在线| 首页国产丝袜综合| 亚洲精品国产第一综合99久久| 26uuu色噜噜精品一区| 欧美日韩国产在线播放网站| av一区二区久久| 国产精品一区二区在线看| 青青草成人在线观看| 亚洲精品成人少妇| 国产女人水真多18毛片18精品视频 | 韩国成人在线视频| 日本va欧美va精品| 亚洲电影一区二区三区| 一区二区三区免费| 亚洲色欲色欲www| 中文字幕亚洲在| 中文字幕中文字幕在线一区 | 中文字幕在线观看不卡| 久久久精品欧美丰满| 欧美va日韩va| 精品国产制服丝袜高跟| 日韩美女天天操| 日韩欧美在线综合网| 欧美日韩aaa| 91精品欧美一区二区三区综合在| 欧美在线你懂得| 色偷偷一区二区三区| 色综合一个色综合亚洲| 99国产精品久久| 91欧美一区二区| 色综合中文字幕| 欧美系列亚洲系列| 欧美精品一二三| 欧美精品成人一区二区三区四区| 欧美欧美午夜aⅴ在线观看| 在线欧美日韩国产| 欧美久久久久免费| 日韩欧美亚洲国产精品字幕久久久 | 黑人巨大精品欧美黑白配亚洲| 久久国产视频网| 国产美女一区二区| 成人动漫一区二区在线| 91啪九色porn原创视频在线观看| 在线精品视频一区二区| 欧美日韩国产一二三| 欧美一区二区三区在线观看| 欧美成人综合网站| 国产精品理伦片| 亚洲国产精品一区二区www在线| 亚洲成人资源网| 国产自产2019最新不卡| av一本久道久久综合久久鬼色| 色妞www精品视频| 欧美日高清视频| 久久久久9999亚洲精品| 亚洲欧美另类综合偷拍| 免费成人结看片| 白白色 亚洲乱淫| 666欧美在线视频| 久久精品亚洲精品国产欧美| 亚洲乱码国产乱码精品精小说| 视频在线在亚洲| 国产精品一区不卡| 精品视频一区 二区 三区| 精品久久免费看| 一级中文字幕一区二区| 精品一区中文字幕| 日本二三区不卡| www国产亚洲精品久久麻豆| 亚洲色欲色欲www在线观看| 人禽交欧美网站| 91碰在线视频| 久久人人爽人人爽| 亚洲在线观看免费| 国产一区高清在线| 欧美日韩精品一区视频| 国产精品伦一区二区三级视频| 亚洲高清免费观看| 国产成人久久精品77777最新版本| 欧美视频完全免费看| 国产欧美精品日韩区二区麻豆天美| 亚洲大片在线观看| 不卡影院免费观看| 日韩视频一区二区在线观看| 亚洲女与黑人做爰| 国产精品香蕉一区二区三区| 欧美艳星brazzers| 中文字幕在线免费不卡| 国产一区二区伦理片| 7777女厕盗摄久久久| 综合婷婷亚洲小说| 国产大陆亚洲精品国产| 欧美一区二区私人影院日本| 亚洲与欧洲av电影| 成人开心网精品视频| 欧美va天堂va视频va在线| 午夜久久久久久久久| www.欧美日韩国产在线| 久久蜜臀中文字幕| 美国十次综合导航| 91麻豆精品国产91久久久使用方法| 国产精品国产a级| 国产伦精品一区二区三区免费迷| 91.xcao| 日本vs亚洲vs韩国一区三区 | 欧美日韩国产系列| 国产精品久久夜| 国产精品影视天天线| 日韩一区二区三区在线观看| 香蕉成人伊视频在线观看| 99久久er热在这里只有精品15 | 国产黑丝在线一区二区三区| 日韩一级二级三级精品视频| 亚洲成人av免费| 色偷偷久久人人79超碰人人澡| 亚洲国产精品成人综合| 国产美女视频91| 久久久久久久久久久99999| 激情偷乱视频一区二区三区| 日韩精品一区二区三区中文精品| 亚洲二区视频在线| 7777女厕盗摄久久久| 奇米精品一区二区三区在线观看一| 欧美日韩日日骚| 天堂久久久久va久久久久| 欧美剧情片在线观看| 免费高清视频精品| 欧美高清激情brazzers| 美腿丝袜亚洲一区| 精品久久人人做人人爽| 国产一区二区不卡在线| 欧美国产精品一区| 粉嫩av亚洲一区二区图片| 国产亚洲欧美日韩俺去了| 成人高清伦理免费影院在线观看| 国产精品久久久久久久久晋中| 99视频国产精品| 亚洲精品免费视频| 欧美日韩免费观看一区二区三区| 天天操天天色综合| 精品国产91久久久久久久妲己| 美女免费视频一区二区| 久久午夜老司机| 成人va在线观看| 亚洲视频免费看| 91精品国产综合久久精品| 国产精品一区二区黑丝| 亚洲人吸女人奶水| 欧美日韩大陆一区二区| 久久国产精品72免费观看| 亚洲国产高清aⅴ视频|