信息隱藏技術(shù)課程研究性教學(xué)實施方案_第1頁
信息隱藏技術(shù)課程研究性教學(xué)實施方案_第2頁
信息隱藏技術(shù)課程研究性教學(xué)實施方案_第3頁
信息隱藏技術(shù)課程研究性教學(xué)實施方案_第4頁
信息隱藏技術(shù)課程研究性教學(xué)實施方案_第5頁
已閱讀5頁,還剩13頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、三、設(shè)計的問題和項目1)熟悉Matlab環(huán)境,通過Matlab對選定的圖像添加均勻噪聲、高斯噪聲、平滑、旋轉(zhuǎn)、裁剪、JPG壓縮等處理;2)掌握和理解采樣定理,用Matlab對信號分別進(jìn)行過采樣、欠采樣及其重構(gòu),并計算和展示原信號和重構(gòu)信號的誤差;3)錄制或下載一段音頻信息,采用離散傅里葉變換的方法分析其頻率成分,然后對其進(jìn)行加噪和濾波處理,掌握數(shù)字信號處理的基本方法;4)對選定的秘密圖像進(jìn)行RC4加密、Arnold置亂、幻方置亂等預(yù)處理和復(fù)原;5)在選定的圖像中采用最低有效位替換技術(shù)隱藏經(jīng)過預(yù)處理后的秘密圖像,對攜密載體進(jìn)行加噪、平滑、壓縮、裁剪、旋轉(zhuǎn)等攻擊,然后提取隱藏的秘密信息,并撰寫設(shè)計

2、報告;6)在選定的圖像中采用DCT系數(shù)互換的方法隱藏經(jīng)過預(yù)處理后的秘密圖像,對攜密載體進(jìn)行加噪、平滑、壓縮、裁剪、旋轉(zhuǎn)等攻擊,然后提取隱藏的秘密信息,并撰寫設(shè)計報告。一個可發(fā)布的應(yīng)用程序通常都需要具備一個友好的圖形界面(比如,我們開課時或給學(xué)生上課而使用課件時,我們一般就會用到可視化界面)。這樣用戶不需要知道應(yīng)用程序究竟是怎樣執(zhí)行各種命令的, 而只需要了解可見界面組件的使用方法用戶也不需要知道命令是如何執(zhí)行, 只要通過與界面交互就可以使指定行為得以正確執(zhí)行。MATLAB可視化界面的設(shè)計, 一般有兩種方法, 一是直接通過編輯M腳本文件產(chǎn)生GUI(這個方法就是我們在前面學(xué)習(xí)過的如何編寫、調(diào)用M文件

3、), 二是通過MATLAB圖形用戶界面開發(fā)環(huán)境GUIDE(Graphical User Interface Development Environment)來形成相應(yīng)文件。這里只講述在GUIDE環(huán)境中利用控件實現(xiàn)可視化界面功能, 不探討直接通過編輯腳本文件實現(xiàn)可視化界面的方法。MATLAB軟件GUIDE為用戶提供了一個方便高效的集成環(huán)境, 所有GUI支持的用戶控件都集成在這個環(huán)境中, 并提供界面外觀、屬性和行為響應(yīng)方式的設(shè)置方法。GUIDE將用戶保存設(shè)計好的GUI界面保存在一個FIG資源文件中, 同時自動生成包含GUI初始化和組件界面布局控制代碼的M文件, 為實現(xiàn)回調(diào)函數(shù)提供了一個參考框架。下

4、面以一個具體實例來說明GUIDE的開發(fā)使用以下所講解的關(guān)于各控件的使用, 我們以MATLAB7.0版本為調(diào)試環(huán)境, 如果版本的環(huán)境和版本略有不同,但基本思想和方法一致。為了方便大家學(xué)習(xí),此處提供二個版本(即文字和視頻,文字的即為下面的敘述,視頻請點擊此處。)實例要完成的功能如下:首先運行M文件后,出現(xiàn)一個主畫面當(dāng)分別點擊按鈕“螺旋線”、“內(nèi)擺線”、“圓旋轉(zhuǎn)成圓環(huán)”和“退出”命令按鈕時,分別出現(xiàn)如下列圖示的動態(tài)、靜態(tài)的結(jié)果。螺旋線圖內(nèi)擺線圖圓動成環(huán)圖退出信息圖下面看具體的操作步驟:1)啟動Matlab并進(jìn)入GUIDE環(huán)境:在Command Window下輸入“guide”,進(jìn)入GUIDE環(huán)境。出

5、現(xiàn)如下圖所示的界面(寫到這里,發(fā)現(xiàn)文字?jǐn)⑹龊芊爆崳€得寫,要命)。這里Matlab提供了一個新建空白界面及三個樣本界面,它們分別是:GUI with Uicontrols;GUI with Axes and Menu;Modal Question Dialog;當(dāng)然還有一個標(biāo)簽是用來打開已經(jīng)編寫好的GUI的。一般來說,我們會用Blank GUI,即空白的界面來寫自己的東西。進(jìn)入后,Matlab就新建了一個fig文件(默認(rèn)名是untitled.fig),同時得到如下的編輯窗口:從上圖我們可以看出Matlab 的Guide環(huán)境可以分為三個部分即菜單欄和工具欄、用戶控件集、用戶界面編輯窗口。菜單欄

6、,暫時不作介紹,我們主要使用用戶控件集(其它軟件一般稱為工具箱),用戶控件集主要有命令按鈕(Push Button)、切換按鈕(Toggle Button)、單選按鈕(Radio Button)、復(fù)選框按鈕(Checkbox)、編輯框(Edit Button)、靜態(tài)文本框(Static Button)、滾動桿(Slider)、列表框(Listbox)、彈出式菜單(Pop-menu)、坐標(biāo)軸(Axes)等。嚴(yán)格地講, 坐標(biāo)軸不能算控件的范疇。用戶界面編輯窗口用于對受控的圖形窗口進(jìn)行編輯, 比如添加按鈕、靜態(tài)文本框等。2)在用戶界面編輯窗口添加相應(yīng)控件(終于可以做具體的事了,這個就簡單了,哈哈)首

7、先,在用戶界面編輯窗口添加4個命令按鈕(顯示是OK的用個PUSH BUTTON),再如下圖所示添加5個靜態(tài)文本框(Static Text)、5個編輯文本框(Edit Text)和一個坐標(biāo)系(Axes)其次,按下表設(shè)置每個控件的屬性值(具體操作是:右擊要設(shè)置屬性的控件property inspector 命令在彈出的屬性窗口中找到相應(yīng)的屬性名稱將該屬性的值修改成自己需要的值) 控件名屬性屬性修改值PushButton1FontSize16String螺旋線TagpushbuttonLxxPushButton2FontSize16String內(nèi)擺線TagpushbuttonNBXPush

8、Button3FontSize16String圓旋轉(zhuǎn)成圓環(huán)TagpushbuttonCtoCPushButton4FontSize16String退出TagpushbuttonExitStatic Text1String大圓半徑Static Text2String小圓半徑Static Text3String修正值Static Text4String圓半徑Static Text5String離轉(zhuǎn)軸的距離Edit Text1String空或設(shè)置成一個適定值,如10TageditBCREdit Text2String空或設(shè)置成一個適定值,如2TageditSCREdit Text3String空或設(shè)

9、置成一個適定值,如1TageditXZZEdit Text4String空或設(shè)置成一個適定值,如4TageditCREdit Text5String空或設(shè)置成一個適定值,如10TageditBExit 注:上面控件名稱的編號,比如1,2之類,在界面上是沒有的,只是我按照從上到下的次序,為方便敘述而編寫的。最后,添加程序(在添加程序前,最好先將文件保存一下,比如以Exp8.m為文件名保存),添加程序的常用方法是:單擊菜單命令viewM-,此時,得到下面的程序:function varargout = Exp8(varargin)gui_Singleton = 1;gui_State =

10、 struct('gui_Name',       m, .                   'gui_Singleton',  gui_Singleton, .            

11、0;      'gui_OpeningFcn', Exp8_OpeningFcn, .                   'gui_OutputFcn',  Exp8_OutputFcn, .           

12、        'gui_LayoutFcn',  , .                   'gui_Callback',   );if nargin && ischar(varargin1)    gui_State.gui_Callb

13、ack = str2func(varargin1);endif nargout    varargout1:nargout = gui_mainfcn(gui_State, varargin:);else    gui_mainfcn(gui_State, varargin:);end%上面的是系統(tǒng)初始化代碼,絕對不要去修改它們。function Exp8_OpeningFcn(hObject, eventdata, handles, varargin)handles.output = hObject;guidata(hObject,

14、 handles);%上面的代碼,告訴我們,一般的用戶界面的自己設(shè)置的初始化狀態(tài)應(yīng)添加在這個函數(shù)內(nèi)。function varargout = Exp8_OutputFcn(hObject, eventdata, handles)varargout1 = handles.output;%上面的函數(shù)返回的量直接到命令窗口。function pushbuttonLxx_Callback(hObject, eventdata, handles)%上面的函數(shù)是點擊螺旋線按鈕時,執(zhí)行的代碼,即可以在此處添加有關(guān)螺旋線的程序代碼。function pushbuttonNBX_Callback(hObject

15、, eventdata, handles)%上面的函數(shù)是點擊內(nèi)擺線按鈕時,執(zhí)行的代碼,即可以在此處添加有關(guān)內(nèi)擺線的程序代碼。% - Executes on button press in pushbuttonExit.function pushbuttonExit_Callback(hObject, eventdata, handles)%上面的函數(shù)是點擊退出按鈕時,執(zhí)行的代碼,即可以在此處添加退出時的程序代碼。function editBCR_Callback(hObject, eventdata, handles)%上面的函數(shù)是 editBCR這個編輯文本按鈕回調(diào)時,執(zhí)行的代碼。BigCi

16、rcleRadial=str2double(get(hObject,'String');function editBCR_CreateFcn(hObject, eventdata, handles)if ispc    set(hObject,'BackgroundColor','white');else    set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor');en

17、d %上面的函數(shù)用來在程序中設(shè)置editBCR的屬性值。 function editSCR_Callback(hObject, eventdata, handles)%上面的函數(shù)是editSCR這個編輯文本按鈕回調(diào)時,執(zhí)行的代碼。function editSCR_CreateFcn(hObject, eventdata, handles)if ispc    set(hObject,'BackgroundColor','white');else    set(hObject,'

18、;BackgroundColor',get(0,'defaultUicontrolBackgroundColor');end %上面的函數(shù)用來在程序中設(shè)置editSCR的屬性值。 function editXZZ_Callback(hObject, eventdata, handles)%上面的函數(shù)是editXZZ這個編輯文本按鈕回調(diào)時,執(zhí)行的代碼。function editXZZ_CreateFcn(hObject, eventdata, handles)if ispc    set(hObject,'Back

19、groundColor','white');else    set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor');end %上面的函數(shù)用來在程序中設(shè)置editXZZ的屬性值。function pushbuttonCtoC_Callback(hObject, eventdata, handles)%上面的函數(shù)是點擊圓旋轉(zhuǎn)成圓環(huán)按鈕時,執(zhí)行的代碼,即可以在此處添加圓旋轉(zhuǎn)成圓環(huán)時的程序代碼。function editC

20、R_Callback(hObject, eventdata, handles)%上面的函數(shù)是editCR這個編輯文本按鈕回調(diào)時,執(zhí)行的代碼。function editCR_CreateFcn(hObject, eventdata, handles)if ispc    set(hObject,'BackgroundColor','white');else    set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgro

21、undColor');end %上面的函數(shù)用來在程序中設(shè)置editCR的屬性值。function editDist_Callback(hObject, eventdata, handles)function editDist_CreateFcn(hObject, eventdata, handles)if ispc    set(hObject,'BackgroundColor','white');else    set(hObject,'BackgroundColor'

22、;,get(0,'defaultUicontrolBackgroundColor');end %上面的函數(shù)用來在程序中設(shè)置editDist的屬性值。下面真正添加自己的程序,最后成的程序如下:自己添加的程序用紅色表示。function varargout = Exp8(varargin)gui_Singleton = 1;gui_State = struct('gui_Name',       m, .        

23、;           'gui_Singleton',  gui_Singleton, .                   'gui_OpeningFcn', Exp8_OpeningFcn, .      &#

24、160;            'gui_OutputFcn',  Exp8_OutputFcn, .                   'gui_LayoutFcn',  , .      &#

25、160;            'gui_Callback',   );if nargin && ischar(varargin1)    gui_State.gui_Callback = str2func(varargin1);endif nargout    varargout1:nargout = gui_mainfcn(gui_State, varargin:);el

26、se    gui_mainfcn(gui_State, varargin:);end%上面的是系統(tǒng)初始化代碼,絕對不要去修改它們。function Exp8_OpeningFcn(hObject, eventdata, handles, varargin)handles.output = hObject;guidata(hObject, handles);%這里選擇了一個圖片文件,作為初始畫面,具體的圖片可以選擇自己喜歡的。map1=imread('Water lilies.jpg');image(map1)%上面的代碼,告訴我們,一般的用戶界面

27、的自己設(shè)置的初始化狀態(tài)應(yīng)添加在這個函數(shù)內(nèi)。function varargout = Exp8_OutputFcn(hObject, eventdata, handles)varargout1 = handles.output;%上面的函數(shù)返回的量直接到命令窗口。function pushbuttonLxx_Callback(hObject, eventdata, handles)%上面的函數(shù)是點擊螺旋線按鈕時,執(zhí)行的代碼,即可以在此處添加有關(guān)螺旋線的程序代碼。axes(handles.axes1)clav=2;alf=pi/6;omg=pi/5;t=0:0.01:100;x=v*sin(alf

28、).*cos(omg*t).*t;y=v*sin(alf).*sin(omg*t).*t;z=v*cos(alf).*t;%plot3(x,y,z)axis(-100 100 -100 100 0 160)grid onaxis equal oncomet3(x,y,z)%上面的程序是“一質(zhì)點,沿著已知圓錐面的一條直母線自圓錐的頂點起,作等速直線運動,另一方面這一條母線在圓錐面上,過圓錐的頂點繞圓錐的軸(旋轉(zhuǎn)軸)作等速的轉(zhuǎn)動,這時質(zhì)點在圓錐面上的軌跡”的動態(tài)形成過程。function pushbuttonNBX_Callback(hObject, eventdata, handles)%上面的

29、函數(shù)是點擊內(nèi)擺線按鈕時,執(zhí)行的代碼,即可以在此處添加有關(guān)內(nèi)擺線的程序代碼。axes(handles.axes1)claa=str2double(get(handles.editBCR,'String');b=str2double(get(handles.editSCR,'String');k=str2double(get(handles.editXZZ,'String');axis(-a-2 a+2 -a-2 a+2 0 a+2)line(-a-2,a+2,0,0);hold online(0,0,-a-2,a+2u=0:pi/30:2*pi;x

30、=a*cos(u);y=a*sin(u);plot(x,y)x=b*cos(u)+a-b;y=b*sin(u);plot(x,y)axis equal ongrid ontheta=0:pi/1800:k*a*pi;x=(a-b)*cos(b/a*theta)+b*cos(a-b)/a*theta);y=(a-b)*sin(b/a*theta)-b*sin(a-b)/a*theta);comet(x,y)%上面的程序是內(nèi)擺線的動態(tài)的形成過程% - Executes on button press in pushbuttonExit.function pushbuttonExit_Callbac

31、k(hObject, eventdata, handles)%上面的函數(shù)是點擊退出按鈕時,執(zhí)行的代碼,即可以在此處添加退出時的程序代碼。ss=questdlg('你真的要退出嗎?','退出信息窗口!','不,我還想看看!','是的,我要退出!','是的,我要退出!');switch ss    case '是的,我要退出!'        delete(handles.figure1);end%上面的

32、程序是退出程序時信息窗口function editBCR_Callback(hObject, eventdata, handles)%上面的函數(shù)是 editBCR這個編輯文本按鈕回調(diào)時,執(zhí)行的代碼。function editBCR_CreateFcn(hObject, eventdata, handles)if ispc    set(hObject,'BackgroundColor','white');else    set(hObject,'BackgroundColor',get(

33、0,'defaultUicontrolBackgroundColor');end %上面的函數(shù)用來在程序中設(shè)置editBCR的屬性值。 function editSCR_Callback(hObject, eventdata, handles)%上面的函數(shù)是editSCR這個編輯文本按鈕回調(diào)時,執(zhí)行的代碼。function editSCR_CreateFcn(hObject, eventdata, handles)if ispc    set(hObject,'BackgroundColor','whit

34、e');else    set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor');end %上面的函數(shù)用來在程序中設(shè)置editSCR的屬性值。 function editXZZ_Callback(hObject, eventdata, handles)%上面的函數(shù)是editXZZ這個編輯文本按鈕回調(diào)時,執(zhí)行的代碼。function editXZZ_CreateFcn(hObject, eventdata, handles)

35、if ispc    set(hObject,'BackgroundColor','white');else    set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor');end %上面的函數(shù)用來在程序中設(shè)置editXZZ的屬性值。function pushbuttonCtoC_Callback(hObject, eventdata, handles)%上面的函數(shù)是點擊圓旋轉(zhuǎn)成圓環(huán)按鈕時,執(zhí)行的代碼,即可以在此處添加圓旋轉(zhuǎn)成圓環(huán)時的程序代碼。axes(handles.axes1)cla%a=4;%b=10;a=str2double(get(handles.editCR,'String');b=str2double(get(handles.editDist,&

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論