• 
    

    
    

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

      ?

      基于雙邊濾波美顏算法的案例化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ǔ).

      猜你喜歡
      窗體美顏雙邊
      加油站開啟“美顏”模式
      試談Access 2007數(shù)據(jù)庫在林業(yè)檔案管理中的應(yīng)用
      檔案天地(2019年5期)2019-06-12 05:12:02
      材料不能“美顏”——應(yīng)當(dāng)著筆干實事
      這七種水果熟吃,美顏又養(yǎng)生
      海峽姐妹(2018年11期)2018-12-19 05:18:32
      電子產(chǎn)品回收供應(yīng)鏈的雙邊匹配策略
      拍照
      三月三(2016年8期)2016-09-29 09:24:39
      新型自適應(yīng)穩(wěn)健雙邊濾波圖像分割
      雙邊同步驅(qū)動焊接夾具設(shè)計
      焊接(2015年5期)2015-07-18 11:03:41
      基于LayeredWindow的異形窗體局部刷新
      中文信息(2014年2期)2014-03-06 23:49:14
      中厚板雙邊剪模擬剪切的研究
      天津冶金(2014年4期)2014-02-28 16:52:46
      象州县| 瑞丽市| 固安县| 化德县| 永德县| 民县| 黄大仙区| 齐河县| 枝江市| 桦川县| 策勒县| 安庆市| 黄龙县| 莲花县| 伊宁县| 汶上县| 达孜县| 太仓市| 嵩明县| 大石桥市| 昭觉县| 内丘县| 镇平县| 双柏县| 塘沽区| 颍上县| 四川省| 宿松县| 伊吾县| 巴彦淖尔市| 巩义市| 怀化市| 永寿县| 花莲市| 阜平县| 西乌珠穆沁旗| 苍山县| 成武县| 盈江县| 灵石县| 循化|