999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于Matlab GUI的圖像和視頻處理仿真系統設計

2019-04-03 07:51:52齊玉娟王延江
實驗技術與管理 2019年3期
關鍵詞:按鈕設置

齊玉娟, 王延江

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

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

1 仿真系統的總體設計

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

圖1 圖像和視頻處理系統總體框架

2 系統軟件設計的關鍵點

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

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

圖2 GUI設計流程

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

由GUIDE進行應用程序設計的關鍵是控件屬性的設置和獲取,以及回調函數的編寫。本系統的各大模塊均是獨立的模塊,各算法獨立,不會相互影響。

3 仿真系統設計實例

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

3.1 靜態圖像處理設計實例

3.1.1 鄰域平均算法原理

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

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

本系統的模板有3×3、5×5、7×7和9×9,可根據實際的應用需要采用不同的模板進行平滑操作。

3.1.2 鄰域平均算法GUI設計

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

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

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

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

圖3 鄰域平均Callback函數流程圖

程序的關鍵語句如下:

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

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

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

%其轉化為數值

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

hw=str2num(hw1);

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

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

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

Switch N_noise

case 2

noise=′gaussian′;

%以下對輸入對話框的參數進行設置

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

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

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

lines=[2 1]′;

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

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

var1=answer{1};

mv1=answer{2};%讀取新設置的參數值

var=str2num(var1);

mv=str2num(mv1);%將參數值轉化為數值

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

(4) 運行調試。

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

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

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

3.2 動態圖像處理設計實例

3.2.1 均值漂移目標跟蹤算法GUI設計

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

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

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

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

圖5 播放暫停工具欄狀態

第三步:編寫按鈕的Callback函數和工具按鈕的點擊回調函數。

Callback函數的關鍵語句:

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

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

video=VideoReader(filename);

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

I=read(video,1);

[temp,rect]=imcrop(I);

接下來,通過if else end結構控制播放暫停并完成目標跟蹤算法。

%獲取播放按鈕的狀態

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

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

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

playflag=strcmp(newstate,′off′);

if playflag

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

……

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

C=k/video.NumberOfFrames;

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

else

pause(newstate);

end

播放、暫停兩個工具按鈕的點擊回調函數分別如下:

%播放工具按鈕的點擊回調函數

function play_ClickedCallback(hObject, eventdata, handles)

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

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

%暫停工具按鈕的點擊回調函數

function pause_ClickedCallback(hObject, eventdata, handles)

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

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

第四步:運行調試。

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

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

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

圖6 目標跟蹤窗口

4 結語

基于Matlab GUI的圖像/視頻處理仿真系統為學生學習提供了一個交互式、可視化仿真環境,將原本枯燥、抽象的信號處理理論變得直觀、生動,既能增進學生對理論知識理解,又能使學生將理論知識與實際應用相結合,激發學生學習興趣,培養學生實踐動手能力和設計創新能力,改善了教學效果。

猜你喜歡
按鈕設置
這些按鈕能隨便按嗎?
哪個是門鈴真正的按鈕
當你面前有個按鈕
中隊崗位該如何設置
少先隊活動(2021年4期)2021-07-23 01:46:22
7招教你手動設置參數
死循環
本刊欄目設置說明
中俄臨床醫學專業課程設置的比較與思考
內心不能碰的按鈕
商業評論(2014年9期)2015-02-28 04:32:41
艦船人員編制的設置與控制
主站蜘蛛池模板: 91精品视频在线播放| 亚洲精品爱草草视频在线| 免费AV在线播放观看18禁强制| 男女猛烈无遮挡午夜视频| 亚洲国产亚洲综合在线尤物| 99re精彩视频| 亚洲精品亚洲人成在线| 三上悠亚精品二区在线观看| 在线不卡免费视频| 色噜噜久久| 国产精品永久在线| 玖玖精品在线| 久草网视频在线| 99热免费在线| 亚洲首页在线观看| 久久精品国产999大香线焦| 亚洲人成色在线观看| 久久亚洲美女精品国产精品| 亚洲日本精品一区二区| 色欲色欲久久综合网| 欧美日韩精品一区二区在线线| 成人免费网站久久久| 国产在线观看人成激情视频| 激情网址在线观看| 国产va欧美va在线观看| 国内精品视频在线| 熟女成人国产精品视频| 97av视频在线观看| 亚洲三级a| 久青草网站| 污网站在线观看视频| 福利视频一区| yjizz国产在线视频网| 色综合热无码热国产| 亚洲床戏一区| 欧美精品在线免费| 午夜爽爽视频| 九色视频最新网址| 99久视频| 人妻熟妇日韩AV在线播放| 亚洲精品在线91| 亚洲国产成人自拍| 一级毛片免费观看不卡视频| 亚洲国产精品美女| 在线观看无码av五月花| 秋霞午夜国产精品成人片| 香蕉视频国产精品人| 亚洲人成网站色7799在线播放| 久久国产拍爱| 99re在线免费视频| 日韩精品专区免费无码aⅴ| 91外围女在线观看| 欧美成人午夜视频免看| 国产成人免费| 亚洲人成色在线观看| 久久这里只有精品66| 亚洲综合九九| 精品久久综合1区2区3区激情| 欧美日本不卡| 亚洲国产成熟视频在线多多| 国产成人精品18| 在线观看欧美国产| 伊人久久婷婷| 夜夜爽免费视频| 亚洲一区第一页| 午夜色综合| 成人综合网址| 精品久久人人爽人人玩人人妻| 色爽网免费视频| 久久永久视频| 中国特黄美女一级视频| 夜夜操国产| 国产一区二区丝袜高跟鞋| lhav亚洲精品| 亚洲欧美精品一中文字幕| 日韩精品久久久久久久电影蜜臀| 日本免费a视频| 国产噜噜噜视频在线观看| 最新国产在线| 一个色综合久久| 无码一区18禁| 国产精品视频猛进猛出|