• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于Matlab GUI的圖像和視頻處理仿真系統(tǒng)設(shè)計

      2019-04-03 07:51:52齊玉娟王延江
      實驗技術(shù)與管理 2019年3期
      關(guān)鍵詞:控件鄰域均值

      齊玉娟, 王延江

      (中國石油大學(xué)(華東) 信息與控制工程學(xué)院, 山東 青島 266580)

      計算機軟件技術(shù)的發(fā)展為計算機輔助教學(xué)帶來了便利[1-7]。“數(shù)字圖像處理”[8-10]是電子信息專業(yè)的重要專業(yè)課程,課程內(nèi)容涉及高等數(shù)學(xué)、線性代數(shù)、概率統(tǒng)計等內(nèi)容。由于課程基本理論和算法比較抽象,學(xué)生不易理解。為此,本文基于Matlab[11-12]平臺下的GUI(graphical user interface)[13]設(shè)計一套圖像和視頻處理仿真系統(tǒng),用于課程的輔助教學(xué)。該系統(tǒng)涵蓋數(shù)字圖像處理課程的經(jīng)典處理方法,包括圖像的基本運算、圖像增強、圖像變換、圖像邊緣提取、圖像濾波等,集視頻播放、運動目標跟蹤于一體。該系統(tǒng)參數(shù)調(diào)節(jié)靈活、擴展方便,而且易轉(zhuǎn)化為.exe可執(zhí)行文件,脫離Matlab環(huán)境運行-。

      1 仿真系統(tǒng)的總體設(shè)計

      圖像和視頻處理仿真系統(tǒng)的總體設(shè)計框架如圖1所示。系統(tǒng)分為數(shù)字圖像處理、視頻圖像處理兩大模塊,基本涵蓋了數(shù)字圖像處理課程的主要教學(xué)內(nèi)容。數(shù)字圖像處理模塊主要是對靜態(tài)圖像進行的處理,包括圖像基本運算、圖像增強、圖像變換、圖像邊緣提取、圖像濾波等子模塊;而視頻圖像處理模塊是對視頻序列進行的處理。

      圖1 圖像和視頻處理系統(tǒng)總體框架

      2 系統(tǒng)軟件設(shè)計的關(guān)鍵點

      根據(jù)系統(tǒng)總體設(shè)計框架的思路,軟件設(shè)計采用GUI(graphical user interface)[13]方式,界面以按鈕為主,其他控件為輔,目的是節(jié)約系統(tǒng)資源的開銷,也使系統(tǒng)使用簡單方便。

      新建GUI包含2個文件:一是包含CallBack函數(shù)的m文件,二是包含GUI控件的fig文件。GUI圖形界面的設(shè)計流程如圖2所示。

      圖2 GUI設(shè)計流程

      圖像和視頻處理仿真系統(tǒng)將每個fig窗口中功能模塊設(shè)計為“按鈕”控件,單擊按鈕即可調(diào)用Callback函數(shù),實現(xiàn)功能或彈出新的圖形窗口界面。各個子模塊又可以彈出包含下一級子模塊的fig窗口,最后一級fig窗口是算法的實現(xiàn)窗口。實現(xiàn)窗口包括操作部分和圖形顯示部分。操作部分的主要控件是“按鈕”,“按鈕”的作用是通過調(diào)用Callback函數(shù),讀取“可編輯文本框”的參數(shù)值。圖形顯示部分主要是利用“軸”控件,在視頻圖像操作時,可以加上“滑動條”控件,以展示視頻播放進度。

      由GUIDE進行應(yīng)用程序設(shè)計的關(guān)鍵是控件屬性的設(shè)置和獲取,以及回調(diào)函數(shù)的編寫。本系統(tǒng)的各大模塊均是獨立的模塊,各算法獨立,不會相互影響。

      3 仿真系統(tǒng)設(shè)計實例

      圖像和視頻處理仿真系統(tǒng)涉及連續(xù)與離散信號分析、數(shù)字信號處理、數(shù)字圖像處理以及數(shù)字視頻處理的典型算法。其中連續(xù)與離散信號分析包括經(jīng)典連續(xù)與離散信號的演示、信號的基本運算、信號的變換域分析等;數(shù)字信號處理模塊包括數(shù)字信號的變換、濾波器設(shè)計等;數(shù)字圖像處理包括圖像基本運算、圖像變形、圖像旋轉(zhuǎn)、圖像增強、圖像變換、圖像形態(tài)學(xué)變換等典型算法;數(shù)字視頻處理包括目標檢測算法、粒子濾波目標跟蹤算法[14]和均值漂移目標跟蹤算法。以下分別以鄰域平均算法和均值漂移運動目標跟蹤算法為例,說明系統(tǒng)靜態(tài)圖像處理和動態(tài)圖像處理設(shè)計過程及操作效果。

      3.1 靜態(tài)圖像處理設(shè)計實例

      3.1.1 鄰域平均算法原理

      鄰域平均算法是經(jīng)典的圖像平滑方法,該算法的基本思想是:將原始圖像的像素灰度值與鄰域像素灰度值求和,再求取平均數(shù),然后將平均數(shù)賦給該像素,即得到平滑后的像素值[8-10],計算結(jié)果不僅與本像素灰度值有關(guān),且與鄰域像素的灰度值均有關(guān)。因此,可以利用模板的方法對像素進行計算,即卷積運算,計算公式為

      式中:s是(x,y)點鄰域中點的坐標的集合;N是鄰域中像素的個數(shù)。

      本系統(tǒng)的模板有3×3、5×5、7×7和9×9,可根據(jù)實際的應(yīng)用需要采用不同的模板進行平滑操作。

      3.1.2 鄰域平均算法GUI設(shè)計

      為便于學(xué)生觀察和對比平滑處理的效果,本系統(tǒng)提供了高斯白噪聲、泊松噪聲、椒鹽噪聲和乘性噪聲供用戶選擇,每種噪聲都可設(shè)定參數(shù),并可自主設(shè)定平滑處理模板的大小。鄰域平均算法GUI設(shè)計過程如下:

      (1) 新建GUI。打開Matlab->新建->App->GUIDE,新建一個空白GUI。

      (2) 在圖形界面上放置控件,并對控件的屬性進行設(shè)置。設(shè)置彈出式選單控件用于噪聲的選擇,在其String屬性中設(shè)置選項字符串(包括噪聲種類、高斯白噪聲、泊松噪聲、椒鹽噪聲、乘性噪聲),彈出式選單的value屬性值為相應(yīng)選項的序號。設(shè)置可編輯文本框控件用于模板的選擇,其String屬性值為模板的尺寸。設(shè)置按鈕控件用于啟動算法,其String設(shè)置為“鄰域平均”。設(shè)置“軸”控件用于顯示圖像。另外設(shè)置了3個面板,其String分別為操作、參數(shù)和圖形顯示,將同類控件放在同一個面板中。

      (3) 編寫按鈕的Callback函數(shù)。以“鄰域平均”按鈕的Callback函數(shù)為例,其設(shè)計流程如圖3所示。

      圖3 鄰域平均Callback函數(shù)流程圖

      程序的關(guān)鍵語句如下:

      %獲取“彈出式菜單”的選項序號

      N_noise=get(handles.popupmenu1,′value′);

      %獲取“可編輯文本框”的String屬性,并將

      %其轉(zhuǎn)化為數(shù)值

      hw1=get(handles.edit1,′String′);

      hw=str2num(hw1);

      %如果模板尺寸是偶數(shù),則彈出錯誤對話框

      errordlg(′模板大小只能是奇數(shù)值′,′錯誤′,modal);

      利用switch結(jié)構(gòu)對彈出式菜單的選項序號進行處理,以下顯示對高斯白噪聲的處理程序:

      Switch N_noise

      case 2

      noise=′gaussian′;

      %以下對輸入對話框的參數(shù)進行設(shè)置

      prompt={′高斯白噪聲均值′,′高斯白噪聲方差′};

      t=′請輸入高斯白噪聲的均值和方差′;

      len={′0′,′0.01′};%設(shè)置均值和方差默認值

      lines=[2 1]′;

      %彈出對話框,重新設(shè)置均值和方差

      answer=inputdlg(prompt,t,lines,len) ;

      var1=answer{1};

      mv1=answer{2};%讀取新設(shè)置的參數(shù)值

      var=str2num(var1);

      mv=str2num(mv1);%將參數(shù)值轉(zhuǎn)化為數(shù)值

      J=imnoise(I1,noise,mv,var); %獲得加噪圖像

      (4) 運行調(diào)試。

      3.1.3 鄰域平均算法操作過程及處理結(jié)果

      點擊“打開圖像”按鈕,打開一幅圖像(圖形顯示區(qū)域從左到右劃分為3個子圖,原圖像顯示在左邊的子圖中);然后選擇噪聲類型(本例選擇高斯白噪聲)和模板大小(本例為5);最后點擊“鄰域平均”按鈕,會彈出一個對話框,用于重新設(shè)定噪聲的參數(shù),點擊“確定”,則會顯示加噪后圖像和均值濾波后圖像(見圖4)。

      圖4 鄰域平均算法去除高斯白噪聲的結(jié)果

      3.2 動態(tài)圖像處理設(shè)計實例

      3.2.1 均值漂移目標跟蹤算法GUI設(shè)計

      均值漂移(mean shift)是Fukunaga等人提出的一種非參數(shù)概率密度梯度估計算法[15],后被廣泛應(yīng)用到模式分類、圖像分割以及目標跟蹤等諸多方面。均值漂移目標跟蹤GUI設(shè)計過程如下:

      第一步:新建空白GUI,并將fig文件命名為“object_tracking_ms.fig”。

      第二步:在圖形界面上放置控件,并對控件的屬性進行設(shè)置。根據(jù)要求放置3個控件:按鈕、軸和滑動條?!鞍粹o”控件的String屬性設(shè)置為“均值漂移運動目標跟蹤”。

      由于一般視頻的播放過程中需要暫停和重新播放兩個工具按鈕,因此仿真系統(tǒng)需添加播放和暫停工具按鈕。設(shè)置好的播放和暫停工具欄如圖5所示。

      圖5 播放暫停工具欄狀態(tài)

      第三步:編寫按鈕的Callback函數(shù)和工具按鈕的點擊回調(diào)函數(shù)。

      Callback函數(shù)的關(guān)鍵語句:

      %打開視頻獲取視頻信息:

      [filename,pathname]=uigetfile(′*.avi′,′open a video file′);

      video=VideoReader(filename);

      目標跟蹤算法需要選定目標,本文采用手動選取感興趣目標。也就是在視頻第一幀時利用鼠標選定目標已完成對跟蹤器的初始化,實現(xiàn)語句為:

      I=read(video,1);

      [temp,rect]=imcrop(I);

      接下來,通過if else end結(jié)構(gòu)控制播放暫停并完成目標跟蹤算法。

      %獲取播放按鈕的狀態(tài)

      newstate=get(handles.play,′Enable′);

      image=read(video,k);%獲取當(dāng)前幀

      %判斷播放按鈕的Enable屬性是否是off

      playflag=strcmp(newstate,′off′);

      if playflag

      %此處添加均值漂移目標跟蹤算法程序

      ……

      %對滑動條滑塊位置進行更新

      C=k/video.NumberOfFrames;

      set(handles.slider1,′value′,C);

      else

      pause(newstate);

      end

      播放、暫停兩個工具按鈕的點擊回調(diào)函數(shù)分別如下:

      %播放工具按鈕的點擊回調(diào)函數(shù)

      function play_ClickedCallback(hObject, eventdata, handles)

      set(handles.play,′Enable′,′off′);

      set(handles.pause,′Enable′,′on′);

      %暫停工具按鈕的點擊回調(diào)函數(shù)

      function pause_ClickedCallback(hObject, eventdata, handles)

      set(handles.pause,′Enable′,′off′);

      set(handles.play,′Enable′,′on′);

      第四步:運行調(diào)試。

      3.2.2 均值漂移目標跟蹤算法操作過程及結(jié)果展示

      “均值漂移運動目標跟蹤”的操作過程如下:

      點擊“均值漂移目標跟蹤”按鈕,打開視頻文件,此時視頻停留在第一幀等待用戶手動選擇目標。用戶可按下鼠標左鍵并拖曳出一個矩形框?qū)⒛繕诉x定,然后雙擊鼠標左鍵開始跟蹤。圖像區(qū)域的跟蹤框為紅色,運動軌跡用藍色曲線表示,滑塊展示視頻的播放進度,如圖6所示。

      圖6 目標跟蹤窗口

      4 結(jié)語

      基于Matlab GUI的圖像/視頻處理仿真系統(tǒng)為學(xué)生學(xué)習(xí)提供了一個交互式、可視化仿真環(huán)境,將原本枯燥、抽象的信號處理理論變得直觀、生動,既能增進學(xué)生對理論知識理解,又能使學(xué)生將理論知識與實際應(yīng)用相結(jié)合,激發(fā)學(xué)生學(xué)習(xí)興趣,培養(yǎng)學(xué)生實踐動手能力和設(shè)計創(chuàng)新能力,改善了教學(xué)效果。

      猜你喜歡
      控件鄰域均值
      稀疏圖平方圖的染色數(shù)上界
      基于鄰域競賽的多目標優(yōu)化算法
      關(guān)于.net控件數(shù)組的探討
      軟件(2018年7期)2018-08-13 09:44:42
      關(guān)于-型鄰域空間
      均值不等式失效時的解決方法
      均值與方差在生活中的應(yīng)用
      關(guān)于均值有界變差函數(shù)的重要不等式
      對偶均值積分的Marcus-Lopes不等式
      基于時序擴展的鄰域保持嵌入算法及其在故障檢測中的應(yīng)用
      就這樣玩會VBA中常見的自定義控件
      電腦迷(2012年24期)2012-04-29 00:44:03
      五常市| 陆河县| 务川| 长武县| 漯河市| 铜川市| 尼木县| 西宁市| 拉萨市| 饶河县| 黄平县| 丰台区| 金昌市| 峨山| 沙雅县| 绵阳市| 金华市| 宁乡县| 凤阳县| 和平县| 涿鹿县| 河曲县| 桓台县| 汶上县| 交城县| 闻喜县| 天镇县| 遵化市| 嘉峪关市| 富平县| 治县。| 历史| 岚皋县| 射洪县| 三门峡市| 锡林郭勒盟| 故城县| 闵行区| 金塔县| 禹州市| 辽宁省|