亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于雙邊濾波美顏算法的案例化C# 程序設(shè)計教學(xué)研究

        2020-08-01 09:33:18
        喀什大學(xué)學(xué)報 2020年3期
        關(guān)鍵詞:定義

        (喀什大學(xué) 計算機科學(xué)與技術(shù)學(xué)院,新疆 喀什 844000)

        0 引言

        C# 是微軟公司推出的一種面向?qū)ο蟮木幊陶Z言[1-2],開發(fā)人員可以在Visual Studio 開發(fā)平臺上使用C# 編程語言開發(fā)各種應(yīng)用程序.C# 程序語言以其功能強大的優(yōu)勢被廣泛應(yīng)用.Visual Studio 開發(fā)平臺憑借其強大的可視化用戶界面設(shè)計,讓C#編程易學(xué)易用.市面上通用的C#教材包含C# 基礎(chǔ)、C# 開發(fā)環(huán)境、C# 基本語法、控制語句、數(shù)組、類、集合、Windows 窗體控件等模塊.

        在21 世紀(jì),隨著社會的飛速發(fā)展,對大學(xué)畢業(yè)生的素質(zhì)要求越來越高.C# 程序設(shè)計語言課程是一門實踐色彩十分突出的課程,需要學(xué)生將所學(xué)知識應(yīng)用到實際中,需要進行大量的編程練習(xí).然而在實際的C# 程序設(shè)計語言課程教學(xué)中,存在以下兩方面的不足:(1)在實際的課堂教學(xué)中,教師往往占據(jù)主導(dǎo)地位,學(xué)生往往處于被動地位,導(dǎo)致學(xué)生學(xué)習(xí)積極性的喪失;(2)學(xué)生上機作業(yè)基本都是教材上給出的課后習(xí)題,很少有考察學(xué)生實際運用能力的綜合性的練習(xí).[3-5]

        本文使用雙邊濾波美顏算法,經(jīng)過C#Win form 程序處理后,能達到美顏效果.通過基于雙邊濾波美顏算法讓學(xué)生了解和掌握C# 程序設(shè)計語言在具體實際中的應(yīng)用.在該案例中首先讓學(xué)生掌握雙邊濾波算法的執(zhí)行流程,然后使用C# 程序語言設(shè)計的知識點,如變量的定義,使用系統(tǒng)類庫定義變量Bitmap bS=(Bitmap)pictureSrc.Image;定義基本數(shù)據(jù)類型變量int width=bS.Width;定義數(shù)組byte [,]bR=new byte[width,height];定義方法private double[,]GetSpatial(int length,int sigmaS);循環(huán)的使用;并且通過圖形界面的方式,使得學(xué)生通過實際案例激發(fā)學(xué)習(xí)興趣,掌握C# 程序開發(fā)知識點,從而更好的達到教學(xué)要求,為進一步深造學(xué)習(xí)打下了基礎(chǔ).

        1 雙邊濾波

        雙邊濾波(Bilateral filter)是一種非線性的濾波方法[6-10],是C# 程序語言設(shè)計中的常用美顏算法,其同時考慮空域信息和灰度相似性,并結(jié)合對圖像的空間鄰近度和像素值相似度的綜合處理,以達到去噪和保護邊緣的目的.雙邊濾波法主要是在圖像的空域(domain)和值域(range)上做工作,空域濾波(Domain Filtering)對空間上鄰近的點進行加權(quán)平均,加權(quán)系數(shù)隨著距離的增加而減少;值域濾波(Range filtering)則是對像素值相近的點進行加權(quán)平均,加權(quán)系數(shù)隨著值差的增大而減少.

        Domain Filtering 表示為:

        公式中kd(x)=∫∫c(r,x)dr;

        Range filtering 表示為:

        公式中kr(x)=∫∫s(f(r),f(x))dr.

        雙邊濾波結(jié)合上述兩種濾波算法思想,可以表示為:

        其 中,k(x)=∫∫c(r,x),s(f(r),f(x))dr,h(x)為像素點x 處濾波后像素亮度值,f(r)為在像素點r 處亮度值.在本文中Domian filtering 以高斯濾波為例,則c(r,x)和相似性函數(shù)s(f(r),f(x))分別定義為:

        其中,d(r,x)=‖r-x‖(‖*‖表示像素點r 和x 的歐式距離),σd為平滑參數(shù);

        其中,d(f(r),f(x))=‖f(r)-f(x)‖(‖*‖表示像素點r 和x 處像素值的歐式距離),σr為平滑參數(shù).

        2 C# 實現(xiàn)

        2.1 定義控件

        使用 C#Winform 窗體程序進行開發(fā),Windows 窗體可用于設(shè)計窗體和可視控件,以創(chuàng)建豐富的基于Windows 的應(yīng)用程序.在Form1主窗體中定義四個ToolStripMenuItem 控件,分別為文件ToolStripMenuItem、打開圖像ToolStrip MenuItem、保存圖像ToolStripMenuItem 和美顏ToolStripMenuItem.定義三個Button 控件,分別為ButtonStart、ButtonOpen 和ButtonSave;定義9 個Lable 控件,以做顯示信息之用;定義三個trackBar,分別為雙邊濾波美顏算法的濾波窗口大小、值域(range)和空域(domain)的參數(shù)大??;定義三個ContextMenuStrip 菜單,作用分別是打開圖像、保存圖像和開始執(zhí)行美顏.兩個PictureBox,分別對應(yīng)原圖和美顏處理后圖.主窗體設(shè)計如圖1 所示.

        圖1 主窗體設(shè)計

        2.2 定義事件

        對三個Button 按鈕、四個StripMenuItem 控件、三個ContextMenuStrip 菜單添加事件和事件處理程序,事件分別是 buttonStart_Click、buttonOpen_Click、buttonSave_Click、打開圖像ToolStripMenuItem_Click、保存圖像ToolStripMenu Item_Click、美顏ToolStripMenuItem_Click、打開圖像ToolStripMenuItem1_Click、保存圖像ToolStrip MenuI tem1_Click、開始執(zhí)行ToolStripMenuIte m_Click、trackBarS_Scroll、trackBarHalfLen_Scroll 和tra ckBarR_Scroll.對每一個事件添加相應(yīng)事件處理程序,如對buttonStart_Click 事件添加void buttonStart_Click(object sender,EventArgs e)事件處理程序,其他事件也做相應(yīng)處理.

        2.3 具體實現(xiàn)步驟

        (1)獲取源圖像數(shù)據(jù)信息

        Bitmap bS=(Bitmap)pictureSrc.Image;

        (2)定義雙邊濾波美顏算法中涉及到的各種變量信息

        (3)定義二維數(shù)組保存圖像RGB 各個通道信息,byte[,]bR、byte[,]bG 和byte[,]bB;

        (4)對圖像邊緣進行處理,本文使用擴展數(shù)組方式,對RGB 通道做同樣處理,如bR=ExtendArray(bR,halfLen);

        (5)雙邊濾波美顏算法處理,對RGB 通道做同樣的雙邊濾波美顏算法處理,如bR=BilateralFilter(bR,length,sigmaS,sigmaR);

        //具體過程G

        int width=bS.GetLength (0);int height=bS.GetLength(1);int halfLength=(int)length/2;

        byte[,]bC=new byte[width-2*halfLength,height-2*halfLength];

        double[,]spatial=GetSpatial(length,sigmaS);

        int i,j,x,y;

        double tmp,sum;

        double[,]range=new double[length,length];

        使用循環(huán)執(zhí)行公式(1)(2)(3);

        (6)將雙邊濾波美顏后的數(shù)據(jù)設(shè)置到目的圖像.

        2.4 實驗結(jié)果

        本文采用從百度圖片獲得到的圖片進行試驗.圖2、圖3 分別是要進行美顏處理的圖片.

        針對圖2 試驗圖像一初始設(shè)置如圖4 所示.通過trackBar 控件分別設(shè)置雙邊濾波美顏算法中參數(shù)SigmaR、SigmaS 和halfLength 的值.在圖4 中,原圖和處理后顯示的圖像都是未經(jīng)處理的原始屠屏,也就是圖2 所顯示圖片.圖4 通過雙邊濾波美顏算法處理后如圖5 所示.在圖5 中,原圖表示的是未經(jīng)處理的圖片,也就是試驗圖像一;處理后圖像是經(jīng)過美顏算法處理的圖片.從圖5 中可以明顯看出,經(jīng)過美顏算法處理后的圖像視覺效果更好.可以使用保存圖像功能,將處理后的圖像保存.再通過打開圖像功能打開另一個試驗圖像二,也就是圖3,效果如圖6 所示.和對圖2 圖像處理一樣,可以設(shè)置雙邊濾波美顏算法中參數(shù)SigmaR、SigmaS 和halfLength 的值.經(jīng)過美顏算法處理后,可以看出美顏后的圖像的視覺效果明顯優(yōu)于原圖,如圖7 所示.

        圖2 試驗圖像一

        圖3 試驗圖像二

        圖4 試驗圖像一美顏前

        圖5 試驗圖像一美顏處理后

        圖6 試驗圖像二美顏前

        圖7 試驗圖像二美顏處理后

        3 結(jié)語

        結(jié)合雙邊濾波美顏算法的案例化C# 程序設(shè)計教學(xué),涉及到了C# 程序設(shè)計語言的變量、程序控制語句、類、Winform 窗體等,將C# 程序語言各個知識點串聯(lián),將課堂理論知識點應(yīng)用到實際工程中,使學(xué)生能學(xué)以致用,學(xué)生對于算法的理解和學(xué)習(xí)為后續(xù)進一步深造打下了良好基礎(chǔ).

        猜你喜歡
        定義
        以愛之名,定義成長
        活用定義巧解統(tǒng)計概率解答題
        例談橢圓的定義及其應(yīng)用
        題在書外 根在書中——圓錐曲線第三定義在教材和高考中的滲透
        永遠不要用“起點”定義自己
        海峽姐妹(2020年9期)2021-01-04 01:35:44
        嚴(yán)昊:不定義終點 一直在路上
        華人時刊(2020年13期)2020-09-25 08:21:32
        定義“風(fēng)格”
        成功的定義
        山東青年(2016年1期)2016-02-28 14:25:25
        有壹手——重新定義快修連鎖
        修辭學(xué)的重大定義
        国产亚洲一本二本三道| 日本视频一区二区三区在线观看| 五月天精品视频在线观看| 久久精品蜜桃亚洲av高清| 国产成人亚洲综合无码| 97免费人妻在线视频| 日韩av无码久久一区二区| 国产一区精品二区三区四区| 亚洲熟女少妇精品久久| 亚洲中文字幕剧情类别| 波多野结衣av一区二区全免费观看| 精品国产拍国产天天人| 少妇人妻真实偷人精品视频| 久久综合成人网| 少妇特殊按摩高潮惨叫无码| 国产大片在线观看91| 在线观看亚洲av每日更新影片 | av手机在线观看不卡| 亚洲国产线茬精品成av | 久久久亚洲日本精品一区 | 日本做受高潮好舒服视频| 国产精品视频一区国模私拍| 国产精品久久久久久久专区| 中文在线最新版天堂av| 一本之道日本熟妇人妻| 人妻丝袜中文无码av影音先锋专区| 久久久久久人妻一区精品| 激情内射亚洲一区二区三区爱妻| 亚洲欧美在线视频| 国产成人亚洲精品一区二区三区 | 日本道免费精品一区二区| 精品一区二区亚洲一二三区| 久久av粉嫩一区二区| 亚洲av日韩综合一区久热| 精品一区二区三区免费播放 | 午夜亚洲国产精品福利| 日韩国产一区二区三区在线观看 | 99精品久久精品一区| 中文字幕人成乱码熟女| 久久精品国产第一区二区三区| 在线免费观看韩国a视频|