資源描述:
《基于matlab的遙感圖像處理程序》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。
1、基于matlab的遙感圖像處理程序報告南京理工大學(xué)電光學(xué)院,無履仙人一、程序簡介基于matlab的GUI可視化遙感圖像處理程序,界面布局如下圖:菜單欄包括:文件,圖像旋轉(zhuǎn),自動識別有效區(qū)域,獲取有效區(qū)域,壓縮,圖像增強,偽彩色圖像,還原重做,退出,關(guān)于等項。主界面部分包含兩個圖像顯示,和部分按鈕及需要輸入的參數(shù)。由于界面大小有限,部分功能留在菜單欄中。二、處理步驟及部分源碼1、打開和保存文件首先是文件菜單,包含打開和保存,打開的文件將顯示在原始圖像和處理圖像兩部分中,在處理過程中,原始圖像不變,以作為和處理圖像對比,保存圖片只保存處理后的圖片,處理前的圖片不做
2、保存。圖片打開后如圖所示,2、圖像旋轉(zhuǎn)由圖可見圖像有部分區(qū)域無有效信息,不利于處理和獲得有效信息,故應(yīng)去除,首先進行旋轉(zhuǎn),便于去除無效區(qū)域。在旋轉(zhuǎn)角度編輯欄內(nèi)輸入要旋轉(zhuǎn)的角度然后點旋轉(zhuǎn)按鈕,進行旋轉(zhuǎn)。旋轉(zhuǎn)后如圖,圖像旋轉(zhuǎn)源碼為:functionimrotate_Callback(hObject,eventdata,handles)h=getappdata(handles.figure_demo,'img_2');x=get(handles.angle,'string');an=str2num(x);g=imrotate(h,an,'bilinear','cro
3、p');img_2=g;axes(handles.tag);imshow(img_2);setappdata(handles.figure_demo,'img_2',img_2);3。、有效區(qū)域自動提取現(xiàn)在圖中有效區(qū)域基本是在一個矩形內(nèi),可以通過算法將有效區(qū)域邊界的坐標求出來,單擊自動識別有效區(qū)域按鈕,求出后顯示在圖片右邊的靜態(tài)文本框內(nèi)。如下圖,圖像自動識別有效區(qū)域源碼如下,functionauto_Callback(hObject,eventdata,handles)h=getappdata(handles.figure_demo,'img_2');[x,y
4、]=size(h);flag=1;fori=1:xforj=1:yifh(i,j)~=0&flag==1x1=i;flag=0;endifh(i,j)~=0x2=i;endendendforj=1:yfori=1:xifh(i,j)~=0&flag==0y1=j;flag=1;endifh(i,j)~=0y2=j;endendendset(handles.x_1,'String',num2str(x1));set(handles.x_2,'String',num2str(x2));set(handles.y_1,'String',num2str(y1));se
5、t(handles.y_2,'String',num2str(y2));y0=y2-y1;x0=x2-x1;rect=[y1,x1,y0,x0];setappdata(handles.figure_demo,'rect',rect);4、獲取有效區(qū)域獲得有效區(qū)域坐標后,就可以通過簡單的命令獲得遙感圖像的有效區(qū)域了,單擊菜單欄的“獲取有效區(qū)域”按鈕,就可獲得。獲得有效區(qū)域后如圖,其源碼為functionimcrop_Callback(hObject,eventdata,handles)h=getappdata(handles.figure_demo,'img_2
6、');rect1=getappdata(handles.figure_demo,'rect');img_2=imcrop(h,rect1);axes(handles.tag);imshow(img_2);setappdata(handles.figure_demo,'img_2',img_2);5、小波壓縮為了便于后續(xù)的處理和觀察,進行小波變換壓縮圖像,在程序中設(shè)置了下拉菜單,用戶可選擇壓縮級次,分別為1、2、3級,默認為1級,選擇好后單擊“小波變換壓縮按鈕”,對圖像進行壓縮,壓縮后如下圖,此時圖像變?yōu)樵瓉韴D像大小的1/4。圖像壓縮源碼為functionwav
7、elet_Callback(hObject,eventdata,handles)h=getappdata(handles.figure_demo,'img_2');x=getappdata(handles.figure_demo,'x');h=double(h);[c,s]=wavedec2(h,2,'bior3.7');ca1=appcoef2(c,s,'bior3.7',x);%低頻x為壓縮級次ca1=wcodemat(ca1,255,'mat',0);%編碼img_2=mat2gray(ca1);imshow(img_2);setappdata(hand
8、les.figure_demo,'im