【圖像隱藏】基于DCT、DWT、LHA、LSB的數(shù)字圖像信息隱藏系統(tǒng)含各類攻擊和性能參數(shù)附matlab代碼
【圖像隱藏】基于DCT、DWT、LHA、LSB的數(shù)字圖像信息隱藏系統(tǒng)含各類攻擊和性能參數(shù)附matlab代碼
TT_Matlab
博主簡介:擅長智能優(yōu)化算法、神經(jīng)網(wǎng)絡(luò)預(yù)測、信號處理、元胞自動機(jī)、圖像處理、路徑規(guī)劃、無人機(jī)等多種領(lǐng)域的Matlab仿真,完整matlab代碼或者程序定制加qq1575304183。
1 內(nèi)容介紹
1.1 課題研究的目的和意義 自二十世紀(jì)九十年代以來,網(wǎng)絡(luò)在我們的生活中得到了快速的普及,網(wǎng)絡(luò)幾乎存 在于家家戶戶中,特別是一些用于交流的軟件自誕生以來更是為我們的生活都帶來了 極大的便利,讓人們的交流變得十分容易。但是網(wǎng)絡(luò)在便利我們生活的同時,也給網(wǎng)絡(luò) 安全造成了很大的威脅。比如我們通常利用網(wǎng)絡(luò)或者多媒體去通信交流或者發(fā)送資料, 這種傳遞方式打破了以往的書信往來,大大便利了人民的生活,但是在這個消息傳遞過 程中網(wǎng)絡(luò)上存在的處處可見的安全隱患卻不容得我們小覷。比如非法者會通過截獲秘 密信息,并對秘密信息進(jìn)行一定的纂改后發(fā)出去,接收者就會接收到錯誤的信息從而 導(dǎo)致很大的失誤,嚴(yán)重的話會對一個企業(yè)以及政府機(jī)關(guān)等等造成毀滅性打擊。 為了打擊這種利用網(wǎng)絡(luò)竊密,甚至利用網(wǎng)絡(luò)盜取國家機(jī)密或者企業(yè)機(jī)密去犯罪的 行為,除了通過公安機(jī)構(gòu)報警處理這種事后處理方法,還應(yīng)該考慮將這種行為直接在 源頭處進(jìn)行扼殺,所以研究信息安全技術(shù)刻不容緩。目前主要的信息安全技術(shù)有兩種, 一種是傳統(tǒng)的信息安全手段加密技術(shù),另一種是新興的信息安全手段信息隱藏技術(shù)[1]。 如今這兩種技術(shù)均被人們廣泛地研究與應(yīng)用。加密技術(shù)的誕生比信息隱藏技術(shù)早了很 久,也是最傳統(tǒng)的信息安全手段,加密技術(shù)是通過將明文進(jìn)行一系列變換,得到一種完 全看不出明文原始樣子的密文,通過將加密后的密文,傳送到接收者的手中,接收者再 進(jìn)行一系列的解密工作來保證信息安全[2]。加密技術(shù)的誕生給信息安全領(lǐng)域帶來了很大 的突破,但是這種技術(shù)也帶來一些問題,比如非法者可以完全看到這種加密信息,就會 有目的性地對加密信息進(jìn)行突破,如果引起非法者的興趣就會有很大可能被解密或者 被破壞。信息隱藏技術(shù)解決了加密技術(shù)這個容易被針對的問題,它隱藏了秘密信息的 存在性,使得非法者根本注意不到秘密信息的存在,就不會有針對性地進(jìn)行攻擊。這項 技術(shù)通過將秘密信息嵌入在可以公開傳播的載體中,但并不改變該公開載體原本的樣 子、價值等等,來實現(xiàn)秘密信息的傳遞[3]。但是,通過隱藏傳遞的秘密信息一旦被發(fā)現(xiàn), 秘密信息將直接暴露,所以結(jié)合用戶們對信息安全的這種高隱蔽和高安全的要求,考 慮到要將加密和信息隱藏結(jié)合起來[4]。
信息隱藏是一種新興的信息安全技術(shù),在信息戰(zhàn),數(shù)字媒體的知識產(chǎn)權(quán)保護(hù)和票據(jù)防偽等方面有許多重要的應(yīng)用.但作為一門信息安全領(lǐng)域的學(xué)科,對它的安全性一直沒有系統(tǒng)的理論研究.我們結(jié)合信息隱藏算法的相關(guān)知識,對基于圖像的空域LSB隱藏算法、DWT變換算法、LHA算法和DCT變換域算法的安全性進(jìn)行了分析,希望能對安全性的理論研究有所幫助.實驗表明,該算法對椒鹽、白噪聲、濾波、剪切、壓縮和旋轉(zhuǎn)等一系列攻擊都有較好的穩(wěn)健性。
2 仿真代碼
function varargout = info_hiding_gui(varargin)
%
INFO_HIDING_GUI M-file
for
info_hiding_gui.fig
%
INFO_HIDING_GUI, by itself, creates a new INFO_HIDING_GUI or raises the existing
%
singleton*.
%
%
H = INFO_HIDING_GUI returns the handle to a new INFO_HIDING_GUI or the handle to
%
the existing singleton*.
%
%
INFO_HIDING_GUI(
’CALLBACK’
,hObject,eventData,handles,...) calls the
local
%
function
named CALLBACK
in
INFO_HIDING_GUI.M with the given input arguments.
%
%
INFO_HIDING_GUI(
’Property’
,
’Value’
,...) creates a new INFO_HIDING_GUI or raises the
%
existing singleton*. Starting from the left, property value pairs are
%
applied to the GUI before info_hiding_gui_OpeningFcn gets called. An
%
unrecognized property name or invalid value makes property application
%
stop. All inputs are passed to info_hiding_gui_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 info_hiding_gui
%
Last Modified by GUIDE v2.5 05-Jun-2010 19:09:16
%
Begin initialization code - DO NOT EDIT
gui_Singleton = 1;
gui_State = struct(’gui_Name’, mfilename, ...
’gui_Singleton’, gui_Singleton, ...
’gui_OpeningFcn’, @info_hiding_gui_OpeningFcn, ...
’gui_OutputFcn’, @info_hiding_gui_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 info_hiding_gui is made visible.
function info_hiding_gui_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 info_hiding_gui (see VARARGIN)
clc;
V=get(0,’screensize’) ;%獲取當(dāng)前根屏幕的大小信息
a=V(3)/2-500;
b=V(4)/2-334;
set(gcf,’Position’,[a b 1001 669])
%
clear;
%
Choose default command line output for info_hiding_gui
handles.output = hObject;
%
Update handles structure
guidata(hObject, handles);
set(handles.radiobutton31,’value’,1);%設(shè)置噪聲攻擊的默認(rèn)值為“無噪聲”
set(handles.radiobutton32,’value’,1);%設(shè)置濾波處理的默認(rèn)值為“無濾波”
set(handles.slider6,’value’,0);%設(shè)置滑動條的默認(rèn)值為0
set(handles.slider7,’value’,0);
set(handles.slider8,’value’,0);
%
set(handles.slider9,’
value
’,0);
set(handles.slider10,’value’,0);
set(handles.edit8,’string’,0);
set(handles.edit9,’string’,0);
set(handles.edit10,’string’,0);
%
set(handles.edit11,’
string
’,0);
set(handles.edit12,’string’,0);
set(handles.edit15,’string’,0);
%
key_1=[];%初始化密鑰為空
%
key_2=[];
%
set(handles.edit1,’
string
’,’
’);
%
set(handles.edit2,’
string
’,’
’);
%
UIWAIT makes info_hiding_gui wait for user response (see UIRESUME)
%
uiwait(handles.figure1);
%
--- Outputs from this function are returned to the command line.
function varargout = info_hiding_gui_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 pushbutton12.
function pushbutton12_Callback(hObject, eventdata, handles)
%
hObject handle to pushbutton12 (see GCBO)
%
eventdata reserved - to be defined in a future version of MATLAB
%
handles structure with handles and user data (see GUIDATA)
response=questdlg(’確定要關(guān)閉此程序?’,’提示對話框’,’關(guān)閉’,’取消’,1);
if strcmp(’關(guān)閉’,response)
close(gcf)
end
%
--- Executes on button press in pushbutton13.
function pushbutton13_Callback(hObject, eventdata, handles)
%
hObject handle to pushbutton13 (see GCBO)
%
eventdata reserved - to be defined in a future version of MATLAB
%
handles structure with handles and user data (see GUIDATA)
%
msgbox(’
name
’,’
版權(quán)聲明
’,’
string
’,’
Copyright ? 2010-2100 何杰 南京郵電大學(xué)
’ )
V=get(0,’screensize’) ;%獲取當(dāng)前根屏幕的大小信息
a=V(3)/2-234+3;
b=V(4)/2-132+70;
copyright(’Position’,[a b 468 264])%設(shè)置彈出的copyright窗口在屏幕的中間附近位置
%
--- Executes on button press in pushbutton14.
function pushbutton14_Callback(hObject, eventdata, handles)
%
hObject handle to pushbutton14 (see GCBO)
%
eventdata reserved - to be defined in a future version of MATLAB
%
handles structure with handles and user data (see GUIDATA)
V=get(0,’screensize’) ;%獲取當(dāng)前根屏幕的大小信息
a=V(3)/2-151;
b=V(4)/2-200+70;
thanks(’Position’,[a b 303 403])
%
--- Executes on slider movement.
function slider6_Callback(hObject, eventdata, handles)
%
hObject handle to slider6 (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,’
Value
’) returns position of slider
%
get(hObject,’
Min
’) and get(hObject,’
Max
’) to determine range of slider
gaussian_slide=get(handles.slider6,’value’);
%
disp(gaussian_slide) %測試
set(handles.edit8,’string’,gaussian_slide);
%
--- Executes during object creation, after setting all properties.
function slider6_CreateFcn(hObject, eventdata, handles)
%
hObject handle to slider6 (see GCBO)
%
eventdata reserved - to be defined in a future version of MATLAB
%
handles empty - handles not created until after all CreateFcns called
%
Hint: slider controls usually have a light gray background.
if isequal(get(hObject,’BackgroundColor’), get(0,’defaultUicontrolBackgroundColor’))
set(hObject,’BackgroundColor’,[.9 .9 .9]);
end
%
--- Executes on slider movement.
function slider7_Callback(hObject, eventdata, handles)
%
hObject handle to slider7 (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,’
Value
’) returns position of slider
%
get(hObject,’
Min
’) and get(hObject,’
Max
’) to determine range of slider
salt_slide=get(handles.slider7,’value’);
%
disp(gaussian_slide) %測試
set(handles.edit9,’string’,salt_slide);
%
--- Executes during object creation, after setting all properties.
function slider7_CreateFcn(hObject, eventdata, handles)
%
hObject handle to slider7 (see GCBO)
%
eventdata reserved - to be defined in a future version of MATLAB
%
handles empty - handles not created until after all CreateFcns called
%
Hint: slider controls usually have a light gray background.
if isequal(get(hObject,’BackgroundColor’), get(0,’defaultUicontrolBackgroundColor’))
set(hObject,’BackgroundColor’,[.9 .9 .9]);
end
%
--- Executes on slider movement.
function slider8_Callback(hObject, eventdata, handles)
%
hObject handle to slider8 (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,’
Value
’) returns position of slider
%
get(hObject,’
Min
’) and get(hObject,’
Max
’) to determine range of slider
localvar_slide=get(handles.slider8,’value’);
%
disp(gaussian_slide) %測試
set(handles.edit10,’string’,localvar_slide);
%
--- Executes during object creation, after setting all properties.
function slider8_CreateFcn(hObject, eventdata, handles)
%
hObject handle to slider8 (see GCBO)
%
eventdata reserved - to be defined in a future version of MATLAB
%
handles empty - handles not created until after all CreateFcns called
%
Hint: slider controls usually have a light gray background.
if isequal(get(hObject,’BackgroundColor’), get(0,’defaultUicontrolBackgroundColor’))
set(hObject,’BackgroundColor’,[.9 .9 .9]);
end
%
--- Executes on slider movement.
function slider9_Callback(hObject, eventdata, handles)
%
hObject handle to slider9 (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,’
Value
’) returns position of slider
%
get(hObject,’
Min
’) and get(hObject,’
Max
’) to determine range of slider
poisson_slide=get(handles.slider9,’value’);
%
disp(gaussian_slide) %測試
set(handles.edit11,’string’,poisson_slide);
%
--- Executes during object creation, after setting all properties.
function slider9_CreateFcn(hObject, eventdata, handles)
%
hObject handle to slider9 (see GCBO)
%
eventdata reserved - to be defined in a future version of MATLAB
%
handles empty - handles not created until after all CreateFcns called
%
Hint: slider controls usually have a light gray background.
if isequal(get(hObject,’BackgroundColor’), get(0,’defaultUicontrolBackgroundColor’))
set(hObject,’BackgroundColor’,[.9 .9 .9]);
end
function edit8_Callback(hObject, eventdata, handles)
%
hObject handle to edit8 (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 edit8 as text
%
str2double(get(hObject,’
String
’)) returns contents of edit8 as a double
gaussian_edit=get(handles.edit8,’string’);
%
disp(gaussian_slide) %測試
gaussian_edit=str2num(gaussian_edit);
if gaussian_edit>0.1||gaussian_edit<0
errordlg(’輸入錯誤,請重輸!’)
error();
end
set(handles.slider6,’value’,gaussian_edit);
%
--- Executes during object creation, after setting all properties.
function edit8_CreateFcn(hObject, eventdata, handles)
%
hObject handle to edit8 (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
%
--- Executes on slider movement.
function slider10_Callback(hObject, eventdata, handles)
%
hObject handle to slider10 (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,’
Value
’) returns position of slider
%
get(hObject,’
Min
’) and get(hObject,’
Max
’) to determine range of slider
speckle_slide=get(handles.slider10,’value’);
%
disp(gaussian_slide) %測試
set(handles.edit12,’string’,speckle_slide);
%
--- Executes during object creation, after setting all properties.
function slider10_CreateFcn(hObject, eventdata, handles)
%
hObject handle to slider10 (see GCBO)
%
eventdata reserved - to be defined in a future version of MATLAB
%
handles empty - handles not created until after all CreateFcns called
%
Hint: slider controls usually have a light gray background.
if isequal(get(hObject,’BackgroundColor’), get(0,’defaultUicontrolBackgroundColor’))
set(hObject,’BackgroundColor’,[.9 .9 .9]);
end
function edit9_Callback(hObject, eventdata, handles)
%
hObject handle to edit9 (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 edit9 as text
%
str2double(get(hObject,’
String
’)) returns contents of edit9 as a double
salt_edit=get(handles.edit9,’string’);
%
disp(gaussian_slide) %測試
salt_edit=str2num(salt_edit);
if salt_edit>0.1||salt_edit<0
errordlg(’輸入錯誤,請重輸!’)
error();
end
set(handles.slider7,’value’,salt_edit);
%
--- Executes during object creation, after setting all properties.
function edit9_CreateFcn(hObject, eventdata, handles)
%
hObject handle to edit9 (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
function edit10_Callback(hObject, eventdata, handles)
%
hObject handle to edit10 (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 edit10 as text
%
str2double(get(hObject,’
String
’)) returns contents of edit10 as a double
localvar_edit=get(handles.edit10,’string’);
%
disp(gaussian_slide) %測試
localvar_edit=str2num(localvar_edit);
if localvar_edit>0.1||localvar_edit<0
errordlg(’輸入錯誤,請重輸!’)
error();
end
set(handles.slider8,’value’,localvar_edit);
%
--- Executes during object creation, after setting all properties.
function edit10_CreateFcn(hObject, eventdata, handles)
%
hObject handle to edit10 (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
function edit11_Callback(hObject, eventdata, handles)
%
hObject handle to edit11 (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 edit11 as text
%
str2double(get(hObject,’
String
’)) returns contents of edit11 as a double
poisson_edit=get(handles.edit11,’string’);
%
disp(gaussian_slide) %測試
poisson_edit=str2num(poisson_edit);
if poisson_edit>0.1||poisson_edit<0
errordlg(’輸入錯誤,請重輸!’)
error();
end
set(handles.slider9,’value’,poisson_edit);
%
--- Executes during object creation, after setting all properties.
function edit11_CreateFcn(hObject, eventdata, handles)
%
hObject handle to edit11 (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
function edit12_Callback(hObject, eventdata, handles)
%
hObject handle to edit12 (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 edit12 as text
%
str2double(get(hObject,’
String
’)) returns contents of edit12 as a double
speckle_edit=get(handles.edit12,’string’);
%
disp(gaussian_slide) %測試
speckle_edit=str2num(speckle_edit);
if speckle_edit>0.1||speckle_edit<0
errordlg(’輸入錯誤,請重輸!’)
error();
end
set(handles.slider10,’value’,speckle_edit);
%
--- Executes during object creation, after setting all properties.
function edit12_CreateFcn(hObject, eventdata, handles)
%
hObject handle to edit12 (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
%
--- Executes on button press in pushbutton7.
function pushbutton7_Callback(hObject, eventdata, handles)
%
hObject handle to pushbutton7 (see GCBO)
%
eventdata reserved - to be defined in a future version of MATLAB
%
handles structure with handles and user data (see GUIDATA)
global im_cover
global im_message
global key_2
get_var_error_expression %判斷是否輸入密鑰
disp(’LSB提取’)%測試
noise
myfilter
lsb_get
%
--- Executes on button press in pushbutton8.
function pushbutton8_Callback(hObject, eventdata, handles)
%
hObject handle to pushbutton8 (see GCBO)
%
eventdata reserved - to be defined in a future version of MATLAB
%
handles structure with handles and user data (see GUIDATA)
%
調(diào)用載體圖像、秘密信息圖像和密鑰的全局變量
global im_cover
global im_message
global key_2
get_var_error_expression %判斷是否輸入密鑰
disp(’DCT提取’) %測試
noise
myfilter
dct_get
%
--- Executes on button press in pushbutton9.
function pushbutton9_Callback(hObject, eventdata, handles)
%
hObject handle to pushbutton9 (see GCBO)
%
eventdata reserved - to be defined in a future version of MATLAB
%
handles structure with handles and user data (see GUIDATA)
global im_cover
global im_message
global key_2
get_var_error_expression %判斷是否輸入密鑰
disp(’DWT提取’) %測試
noise
myfilter
dwt_get
%
--- 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 im_cover %定義im為全局變量
%
選擇載體圖片
[filename,pathname]=...
uigetfile({’*.bmp’},’選擇圖片’);
%
合成路徑+文件名
str=[pathname filename];
%
讀取圖片
im_cover=imread(str);
%
判斷是否為灰度圖像
%
if ndims(im_cover)~=2
%
if ~isgray(im_cover)
%
errordlg(’
請選擇灰度圖像作為載體圖像
’);
%
error();
%
end
im_cover=uint8(im_cover);
set(handles.edit1,’string’,str);
%
--- Executes on button press in pushbutton3.
function pushbutton3_Callback(hObject, eventdata, handles)
%
hObject handle to pushbutton3 (see GCBO)
%
eventdata reserved - to be defined in a future version of MATLAB
%
handles structure with handles and user data (see GUIDATA)
global im_message %全局變量
%
選擇載體圖片
[filename1,pathname1]=...
uigetfile({’*.bmp’},’選擇圖片’);
%
合成路徑+文件名
str=[pathname1 filename1];
%
讀取圖片
im_message=imread(str);
%
判斷是否為二維二值圖像
%
test_message=find(im_message~=0&im_message~=1);
%
if isempty(test_message)
%
test_value=0;
%
else
%
test_value=1;
%
end
%
if ndims(im_message)~=2||test_value
%
if any(im_message~=0|im_message~=1)
%
if ~isbw(im_message)
%
errordlg(’
請選擇二值圖像作為秘密信息圖像
’);
%
error();
%
end
set(handles.edit2,’string’,str);
%
--- Executes on button press in pushbutton4.
function pushbutton4_Callback(hObject, eventdata, handles)
%
hObject handle to pushbutton4 (see GCBO)
%
eventdata reserved - to be defined in a future version of MATLAB
%
handles structure with handles and user data (see GUIDATA)
global im_cover
global im_message %使全局載體圖像的變量
%
判斷是否已經(jīng)選擇載體圖像和秘密信息圖像
if isempty(im_cover)
errordlg(’請選擇一張圖片作為載體圖片’,’錯誤’);
error();
end
if isempty(im_message)
errordlg(’請選擇一張圖片作為秘密圖片’,’錯誤’);
error();
end
%
if im_message==NULL
%
errordlg(’
請選擇載體圖像
’);
%
error();
%
end
figure
subplot(121);
imshow(im_cover);title(’載體圖像’);
subplot(122);
imshow(im_message);title(’秘密信息圖像’);
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
3 運行結(jié)果
4 參考文獻(xiàn)
[1]張大奇, 曲仕茹, 康寶生. 基于DCT和DWT的數(shù)字圖像隱藏技術(shù)[J]. 西北工業(yè)大學(xué)學(xué)報, 2007, 25(3):5.
[2]徐凱. 圖像信息隱藏算法研究[D]. 貴州大學(xué).
博主簡介:擅長智能優(yōu)化算法、神經(jīng)網(wǎng)絡(luò)預(yù)測、信號處理、元胞自動機(jī)、圖像處理、路徑規(guī)劃、無人機(jī)等多種領(lǐng)域的Matlab仿真,相關(guān)matlab代碼問題可私信交流。
部分理論引用網(wǎng)絡(luò)文獻(xiàn),若有侵權(quán)聯(lián)系博主刪除。
-
2023年各省最新電價一覽!8省中午執(zhí)行谷段電價! 2023-01-03
-
PPT導(dǎo)出高分辨率圖片的四種方法 2022-09-22
-
2023年最新!國家電網(wǎng)27家省級電力公司負(fù)責(zé)人大盤點 2023-03-14
-
全國消防救援總隊主官及簡歷(2023.2) 2023-02-10
-
盤點 l 中國石油大慶油田現(xiàn)任領(lǐng)導(dǎo)班子 2023-02-28
-
我們的前輩!歷屆全國工程勘察設(shè)計大師完整名單! 2022-11-18
-
關(guān)于某送變電公司“4·22”人身死亡事故的快報 2022-04-26
