日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > C# >内容正文

C#

C#图像处理基础概念知识

發(fā)布時(shí)間:2023/12/18 C# 60 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C#图像处理基础概念知识 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

圖像是人類獲取和交換信息的主要來(lái)源,因此,圖像處理的應(yīng)用領(lǐng)域必然涉及到人類生活和工作的方方面面。隨著人類活動(dòng)范圍的不斷擴(kuò)大,圖像處理的應(yīng)用領(lǐng)域也將隨之不斷擴(kuò)大。(1)航天和航空技術(shù)方面的應(yīng)用 數(shù)字圖像處理技術(shù)在航天和航空技術(shù)方面的應(yīng)用,除了上面介紹的JPL對(duì)月球、火星照片的處理之外,另一方面的應(yīng)用是在飛機(jī)遙感和衛(wèi)星遙感技術(shù)中。許多國(guó)家每天派出很多偵察飛機(jī)對(duì)地球上有興趣的地區(qū)進(jìn)行大量的空中攝影。對(duì)由此得來(lái)的照片進(jìn)行處理分析,以前需要雇用幾千人,而現(xiàn)在改用配備有高級(jí)計(jì)算機(jī)的圖像處理系統(tǒng)來(lái)判讀分析,既節(jié)省人力,又加快了速度,還可以從照片中提取人工所不能發(fā)現(xiàn)的大量有用情報(bào)。從60年代末以來(lái),美國(guó)及一些國(guó)際組織發(fā)射了資源遙感衛(wèi)星(如LANDSAT系列)和天空實(shí)驗(yàn)室(如SKYLAB),由于成像條件受飛行器位置、姿態(tài)、環(huán)境條件等影響,圖像質(zhì)量總不是很高。因此,以如此昂貴的代價(jià)進(jìn)行簡(jiǎn)單直觀的判讀來(lái)獲取圖像是不合算的,而必須采用數(shù)字圖像處理技術(shù)。如LANDSAT系列陸地衛(wèi)星,采用多波段掃描器(MSS),在900km高空對(duì)地球每一個(gè)地區(qū)以18天為一周期進(jìn)行掃描成像,其圖像分辨率大致相當(dāng)于地面上十幾米或100米左右(如1983年發(fā)射的LANDSAT-4,分辨率為30m)。這些圖像在空中先處理(數(shù)字化,編碼)成數(shù)字信號(hào)存入磁帶中,在衛(wèi)星經(jīng)過(guò)地面站上空時(shí),再高速傳送下來(lái),然后由處理中心分析判讀。這些圖像無(wú)論是在成像、存儲(chǔ)、傳輸過(guò)程中,還是在判讀分析中,都必須采用很多數(shù)字圖像處理方法。現(xiàn)在世界各國(guó)都在利用陸地衛(wèi)星所獲取的圖像進(jìn)行資源調(diào)查(如森林調(diào)查、海洋泥沙和漁業(yè)調(diào)查、水資源調(diào)查等),災(zāi)害檢測(cè)(如病蟲害檢測(cè)、水火檢測(cè)、環(huán)境污染檢測(cè)等),資源勘察(如石油勘查、礦產(chǎn)量探測(cè)、大型工程地理位置勘探分析等),農(nóng)業(yè)規(guī)劃(如土壤營(yíng)養(yǎng)、水份和農(nóng)作物生長(zhǎng)、產(chǎn)量的估算等),城市規(guī)劃(如地質(zhì)結(jié)構(gòu)、水源及環(huán)境分析等)。我國(guó)也陸續(xù)開展了以上諸方面的一些實(shí)際應(yīng)用,并獲得了良好的效果。在氣象預(yù)報(bào)和對(duì)太空其它星球研究方面,數(shù)字圖像處理技術(shù)也發(fā)揮了相當(dāng)大的作用。(2)生物醫(yī)學(xué)工程方面的應(yīng)用 數(shù)字圖像處理在生物醫(yī)學(xué)工程方面的應(yīng)用十分廣泛,而且很有成效。除了上面介紹的CT技術(shù)之外,還有一類是對(duì)醫(yī)用顯微圖像的處理分析,如紅細(xì)胞、白細(xì)胞分類,染色體分析,癌細(xì)胞識(shí)別等。此外,在X光肺部圖像增晰、超聲波圖像處理、心電圖分析、立體定向放射治療等醫(yī)學(xué)診斷方面都廣泛地應(yīng)用圖像處理技術(shù)。 (3)通信工程方面的應(yīng)用 當(dāng)前通信的主要發(fā)展方向是聲音、文字、圖像和數(shù)據(jù)結(jié)合的多媒體通信。具體地講是將電話、電視和計(jì)算機(jī)以三網(wǎng)合一的方式在數(shù)字通信網(wǎng)上傳輸。其中以圖像通信最為復(fù)雜和困難,因圖像的數(shù)據(jù)量十分巨大,如傳送彩色電視信號(hào)的速率達(dá)100Mbit/s以上。要將這樣高速率的數(shù)據(jù)實(shí)時(shí)傳送出去,必須采用編碼技術(shù)來(lái)壓縮信息的比特量。在一定意義上講,編碼壓縮是這些技術(shù)成敗的關(guān)鍵。除了已應(yīng)用較廣泛的熵編碼、DPCM編碼、變換編碼外,目前國(guó)內(nèi)外正在大力開發(fā)研究新的編碼方法,如分行編碼、自適應(yīng)網(wǎng)絡(luò)編碼、小波變換圖像壓縮編碼等。(4)工業(yè)和工程方面的應(yīng)用 在工業(yè)和工程領(lǐng)域中圖像處理技術(shù)有著廣泛的應(yīng)用,如自動(dòng)裝配線中檢測(cè)零件的質(zhì)量、并對(duì)零件進(jìn)行分類,印刷電路板疵病檢查,彈性力學(xué)照片的應(yīng)力分析,流體力學(xué)圖片的阻力和升力分析,郵政信件的自動(dòng)分揀,在一些有毒、放射性環(huán)境內(nèi)識(shí)別工件及物體的形狀和排列狀態(tài),先進(jìn)的設(shè)計(jì)和制造技術(shù)中采用工業(yè)視覺(jué)等等。其中值得一提的是研制具備視覺(jué)、聽(tīng)覺(jué)和觸覺(jué)功能的智能機(jī)器人,將會(huì)給工農(nóng)業(yè)生產(chǎn)帶來(lái)新的激勵(lì),目前已在工業(yè)生產(chǎn)中的噴漆、焊接、裝配中得到有效的利用。(5)軍事公安方面的應(yīng)用 在軍事方面圖像處理和識(shí)別主要用于導(dǎo)彈的精確末制導(dǎo),各種偵察照片的判讀,具有圖像傳輸、存儲(chǔ)和顯示的軍事自動(dòng)化指揮系統(tǒng),飛機(jī)、坦克和軍艦?zāi)M訓(xùn)練系統(tǒng)等;公安業(yè)務(wù)圖片的判讀分析,指紋識(shí)別,人臉鑒別,不完整圖片的復(fù)原,以及交通監(jiān)控、事故分析等。目前已投入運(yùn)行的高速公路不停車自動(dòng)收費(fèi)系統(tǒng)中的車輛和車牌的自動(dòng)識(shí)別都是圖像處理技術(shù)成功應(yīng)用的例子。(6)文化藝術(shù)方面的應(yīng)用 目前這類應(yīng)用有電視畫面的數(shù)字編輯,動(dòng)畫的制作,電子圖像游戲,紡織工藝品設(shè)計(jì),服裝設(shè)計(jì)與制作,發(fā)型設(shè)計(jì),文物資料照片的復(fù)制和修復(fù),運(yùn)動(dòng)員動(dòng)作分析和評(píng)分等等,現(xiàn)在已逐漸形成一門新的藝術(shù)--計(jì)算機(jī)美術(shù)。

數(shù)字圖像處理技術(shù)與圖象處理系統(tǒng)是七十年代末期形成一個(gè)獨(dú)立學(xué)科,當(dāng)時(shí)只能處理靜止圖象,主要用于軍事、科研醫(yī)學(xué)等領(lǐng)域。圖象處理系統(tǒng)是為了加快處理速度而設(shè)計(jì)的專用系統(tǒng),在中小型計(jì)算機(jī)控制下運(yùn)行。這些系統(tǒng)的規(guī)模大,價(jià)格昂貴。面向PC機(jī)的圖象處理系統(tǒng)是八十年代中后期開始出現(xiàn)的。它價(jià)格便宜,易于擴(kuò)充, 軟件豐富,因此很快得到推廣,帶動(dòng)了圖象處理技術(shù)的普及。

在過(guò)去的二十年里,C和C++已經(jīng)成為在商業(yè)軟件的開發(fā)領(lǐng)域中使用最廣泛的語(yǔ)言。它們?yōu)槌绦騿T提供了十分靈活的操作,不過(guò)同時(shí)也犧牲了一定的效率。與諸如Microsoft,Visual Basic, 等語(yǔ)言相比,同等級(jí)別的C/C++應(yīng)用程序往往需要更長(zhǎng)時(shí)間來(lái)開發(fā)。由于C/C++語(yǔ)言的復(fù)雜性,許多程序員都試圖尋找一種新的語(yǔ)言,希望能在功能與效率之間找到一個(gè)更為理想的權(quán)衡點(diǎn)。

???? 目前有些語(yǔ)言,以犧牲靈活性的代價(jià)來(lái)提高效率??墒沁@些靈活性正是C/C++程序員所需要的。這些解決方案對(duì)編程人員的限制過(guò)多(如屏蔽一些底層代碼控制的機(jī)制),其所提供的功能難以令人滿意。這些語(yǔ)言無(wú)法方便地同早先的系統(tǒng)交互,也無(wú)法很好地和當(dāng)前的網(wǎng)絡(luò)編程相結(jié)合。

??? 對(duì)于C/C++用戶來(lái)說(shuō),最理想的解決方案無(wú)疑是在快速開發(fā)的同時(shí)又可以調(diào)用底層平臺(tái)的所有功能。他們想要一種和最新的網(wǎng)絡(luò)標(biāo)準(zhǔn)保持同步并且能和已有的應(yīng)用程序良好整合的環(huán)境。另外,一些C/C++開發(fā)人員還需要在必要的時(shí)候進(jìn)行一些底層的編程。

??? 微軟推出C# (C sharp)是微軟對(duì)這一問(wèn)題的解決方案。C#是一種最新的、面向?qū)ο蟮木幊陶Z(yǔ)言。它使得程序員可以快速地編寫各種基于Microsoft .NET平臺(tái)的應(yīng)用程序,Microsoft .NET提供了一系列的工具和服務(wù)來(lái)最大程度地開發(fā)利用計(jì)算與通訊領(lǐng)域。正是由于C#面向?qū)ο蟮淖吭皆O(shè)計(jì),使它成為構(gòu)建各類組件的理想之選--無(wú)論是高級(jí)的商業(yè)對(duì)象還是系統(tǒng)級(jí)的應(yīng)用程序。使用簡(jiǎn)單的C#語(yǔ)言結(jié)構(gòu),這些組件可以方便的轉(zhuǎn)化為XML 網(wǎng)絡(luò)服務(wù),從而使它們可以由任何語(yǔ)言在任何操作系統(tǒng)上通過(guò)Internet進(jìn)行調(diào)用。最重要的是,C#使得C++程序員可以高效的開發(fā)程序,而絕不損失C/C++原有的強(qiáng)大的功能。因?yàn)檫@種繼承關(guān)系,C#與C/C++具有極大的相似性,熟悉類似語(yǔ)言的開發(fā)者可以很快的轉(zhuǎn)向C#。

??? 效率與安全性新興的網(wǎng)絡(luò)經(jīng)濟(jì)迫使商務(wù)企業(yè)必須更加迅速的應(yīng)對(duì)競(jìng)爭(zhēng)的威脅。開發(fā)者必須不斷縮短開發(fā)周期,不斷推出應(yīng)用程序的新版本,而不僅僅是開發(fā)一個(gè)"標(biāo)志性"的版本。

?? C#在設(shè)計(jì)時(shí)就考慮了這些問(wèn)題。它使開發(fā)者用更少的代碼做更多的事,同時(shí)也不易出錯(cuò)。新的應(yīng)用程序開發(fā)模型意味著越來(lái)越多地解決方案依賴于新出現(xiàn)的網(wǎng)絡(luò)標(biāo)準(zhǔn),例如HTML,XML,SOAP等。現(xiàn)存的開發(fā)工具往往都是早于Internet出現(xiàn)的,或者是在我們所熟知的網(wǎng)絡(luò)還處于孕育期時(shí)出現(xiàn)的。所以,它們一般無(wú)法很好地支持最新的網(wǎng)絡(luò)技術(shù)。

??? C#程序員可以在Microsoft.NET平臺(tái)上事半功倍的構(gòu)建應(yīng)用程序的擴(kuò)展框架。C#包含了內(nèi)置的特性,使任何組件可以輕松轉(zhuǎn)化為XML網(wǎng)絡(luò)服務(wù),通過(guò)Internet被任何操作系統(tǒng)上運(yùn)行的任何程序調(diào)用。更突出的是,XML網(wǎng)絡(luò)服務(wù)框架可以使現(xiàn)有的XML網(wǎng)絡(luò)服務(wù)對(duì)程序員來(lái)說(shuō)就和C#對(duì)象一樣。這樣,程序員就可以方便地使用他們已有的面向?qū)ο蟮木幊碳记蓙?lái)開發(fā)利用現(xiàn)有的XML網(wǎng)絡(luò)服務(wù)。

???? 還有一些精細(xì)的特性,使得C#成為一流的網(wǎng)絡(luò)編程工具。例如,XML正逐漸成為在網(wǎng)絡(luò)上傳輸結(jié)構(gòu)化數(shù)據(jù)的標(biāo)準(zhǔn)。這種數(shù)據(jù)集合往往非常小。為提高性能,C#允許把XML數(shù)據(jù)直接映射到struct數(shù)據(jù)類型,而不是class。這樣對(duì)處理少量的數(shù)據(jù)非常有效。

??? 即使是專家級(jí)的C++程序員也常會(huì)犯一些最簡(jiǎn)單的小錯(cuò)誤--比如忘了初始化變量,但往往就是這些小錯(cuò)誤帶來(lái)了難以預(yù)料的問(wèn)題,有些甚至需要很長(zhǎng)時(shí)間來(lái)尋找和解決。一旦一個(gè)程序作為產(chǎn)品來(lái)使用,就算最簡(jiǎn)單的錯(cuò)誤糾正起來(lái)也可能要付出極其昂貴的代價(jià)。C#的現(xiàn)代化設(shè)計(jì)能夠消除很多常見(jiàn)的C++編程錯(cuò)誤。 例如:資源回收減輕了程序員內(nèi)存管理的負(fù)擔(dān);C#中變量由環(huán)境自動(dòng)初始化;變量是類型安全的。這樣,程序員編寫與維護(hù)那些解決復(fù)雜商業(yè)問(wèn)題的程序就更方便了。

更新軟件組件是一項(xiàng)很容易出錯(cuò)的工作,因?yàn)榇a的修改可能無(wú)意間改變?cè)谐绦虻恼Z(yǔ)義。為協(xié)助開發(fā)者進(jìn)行這項(xiàng)工作,C#為版本的更新提供內(nèi)在的支持。例如,方法重載必須顯式聲明。這樣可以防止編碼錯(cuò)誤,保證版本更新的靈活性。還有一個(gè)相關(guān)的特性就是對(duì)接口和接口繼承的內(nèi)在支持。這些特性使得C#可以開發(fā)復(fù)雜的框架并且隨著時(shí)間不斷發(fā)展更新它。

??? 總體來(lái)說(shuō),這些特性使得開發(fā)程序項(xiàng)目的后續(xù)版本的過(guò)程更加健壯,從而減少后續(xù)版本的開發(fā)成本。

C#語(yǔ)言允許類型定義的,擴(kuò)展的元數(shù)據(jù)。這些元數(shù)據(jù)可以應(yīng)用于任何對(duì)象。項(xiàng)目構(gòu)建者可以定義領(lǐng)域特有的屬性并把他們應(yīng)用于任何語(yǔ)言元素-類,接口等等。然后,開發(fā)人員可以編程檢查每個(gè)元素的屬性。這樣,很多工作都變得方便多了,比如編寫一個(gè)小工具來(lái)自動(dòng)檢查每個(gè)類或接口是否被正確定義為某個(gè)抽象商業(yè)對(duì)象的一部分,或者只是創(chuàng)建一份基于對(duì)象的領(lǐng)域特有屬性的報(bào)表。定制的元數(shù)據(jù)和程序代碼之間的緊密對(duì)應(yīng)有助于加強(qiáng)程序的預(yù)期行為和實(shí)際實(shí)現(xiàn)的之間的對(duì)應(yīng)關(guān)系。

作為一種自動(dòng)管理的,類型安全的環(huán)境,C#適合于大多數(shù)企業(yè)應(yīng)用程序。但實(shí)際的經(jīng)驗(yàn)表明有些應(yīng)用程序仍然需要一些底層的代碼,要么是因?yàn)榛谛阅艿目紤],要么是因?yàn)橐c現(xiàn)有的應(yīng)用程序接口兼容。這些情況可能會(huì)迫使開發(fā)者使用C++,即使他們本身寧愿使用更高效的開發(fā)環(huán)境。C#采用以下對(duì)策來(lái)解決這一問(wèn)題:內(nèi)置對(duì)組建對(duì)象模型(COM)和基于Windows的API的支持;允許有限制地使用純指針(Native Pointer)。

在C#中,每個(gè)對(duì)象都自動(dòng)生成為一個(gè)COM對(duì)象。開發(fā)者不再需要顯式的實(shí)現(xiàn)IUnknown和其他COM接口.這些功能都是內(nèi)置的.類似的,C#可以調(diào)用現(xiàn)有的COM對(duì)象,無(wú)論它是由什么語(yǔ)言編寫的。

  C#包含了一個(gè)特殊的功能,使程序可以調(diào)用任何純API。在一段特別標(biāo)記的代碼中,開發(fā)者可以使用指針和傳統(tǒng)C/C++特性,如手工的內(nèi)存管理和指針運(yùn)算。這是其相對(duì)于其它環(huán)境的極大優(yōu)勢(shì)。這意味著C#程序員可以在原有的C/C++代碼的基礎(chǔ)上編寫程序,而不是徹底放棄那些代碼。無(wú)論是支持COM還是純API的調(diào)用,都是為了使開發(fā)者在C#環(huán)境中直接擁有必要的強(qiáng)大功能。

所以C#是一種現(xiàn)代的面向?qū)ο笳Z(yǔ)言。它使程序員快速便捷地創(chuàng)建基于Microsoft .NET平臺(tái)的解決方案。這種框架使C#組件可以方便地轉(zhuǎn)化為XML網(wǎng)絡(luò)服務(wù),從而使任何平臺(tái)的應(yīng)用程序都可以通過(guò)Internet調(diào)用它。C#增強(qiáng)了開發(fā)者的效率,同時(shí)也致力于消除編程中可能導(dǎo)致嚴(yán)重結(jié)果的錯(cuò)誤。C#使C/C++程序員可以快速進(jìn)行網(wǎng)絡(luò)開發(fā),同時(shí)也保持了開發(fā)者所需要的強(qiáng)大性和靈活性。

C#中,Image為源自?Bitmap??Metafile?的類提供功能的抽象基類,使用Image可以操作各種支持的圖片,如GIF,?BMP,?JPG?Image.FromFile()返回的是某個(gè)繼承自Image的具體類的對(duì)象,在這里,就是Bitmap或者Metafile其中之一。這Bitmap不僅僅對(duì)應(yīng)于bmp,其實(shí)只要是像素式的圖片格式(矢量格式不行),理論上都可以用Bitmap。由于Bitmap是忽略圖像格式的,所以,在本圖像處理的源代碼中,并沒(méi)有給出不同圖像格式轉(zhuǎn)換的代碼,我們所做的僅僅是創(chuàng)建一個(gè)Bitmap對(duì)象,用?Image.FromFile()方法載入圖像并保存到我們所創(chuàng)建的Bitmap對(duì)象中即可。對(duì)載入圖像,我們可以使用SystemDrawing命名空間里提供的Getpixel方法提取像素的RGB值來(lái)進(jìn)行處理。

2.1 BMP圖像

2.1 BMP圖像的基本介紹

如今Windows(3.x以及95,98,NT)系列已經(jīng)成為絕大多數(shù)用戶使用的操作系統(tǒng),它比DOS成功的一個(gè)重要因素是它可視化的漂亮界面。那么Windows是如何顯示圖象的呢?這就要談到位圖(bitmap)。

在 Windows 3.0 以前,Windows系統(tǒng)用的是DDB(設(shè)備有關(guān)位圖)。DDB沒(méi)有調(diào)色板,顯示的顏色依賴硬件,處理色彩很不方便。所以 Microsoft 在 Windows 3.0中 重新定義了BMP文件格式(BMP 3.0),使其支持設(shè)備無(wú)關(guān)位圖——也就是DIB。時(shí)至今日,BMP的版本號(hào)已升至5.0(Windows NT 4.0、Windows95 定義了 BMP 4.0,Windows 98、Windows 2000 定義了 BMP 5.0),但基本結(jié)構(gòu)沒(méi)有變——仍是 BMP文件頭 和 DIB 組成。

Windows 3.1以上版本提供了對(duì)設(shè)備無(wú)關(guān)位圖DIB的支持。DIB位圖可以在不同的機(jī)器或系統(tǒng)中顯示位圖所固有的圖像。與DDB相比而言,DIB是一種外部的位圖格式,經(jīng)常存儲(chǔ)為以BMP為后綴的位圖文件(有時(shí)也以DIB為后綴)。DIB位圖還支持圖像數(shù)據(jù)的壓縮。與Windows DIB結(jié)構(gòu)相似,但不完全相同的另一種DIB是OS/2采用的DIB。

DIB位圖的位數(shù)據(jù)緊跟在顏色表后面。數(shù)據(jù)可以是不壓縮的,也可以是壓縮的。對(duì)4位和8位位圖,可以采用RLE(游程長(zhǎng)度編碼)壓縮,分別稱為RLE4和RLE8位圖。

位數(shù)據(jù)以行為單位存儲(chǔ),每行都被填充到一個(gè)四字節(jié)邊界,即每行所占的存儲(chǔ)長(zhǎng)度總是四字節(jié)(32位)的倍數(shù),不足時(shí)將多余位用0填充。位圖行的存儲(chǔ)次序是顛倒的,即位圖文件中第一行數(shù)據(jù)對(duì)應(yīng)的是位圖的最底行。對(duì)于像素位數(shù)為1的DIB位圖,其每個(gè)像素只占1位,每個(gè)字節(jié)存儲(chǔ)八個(gè)像素。字節(jié)的最高位對(duì)應(yīng)于最左邊的像素。在沒(méi)有壓縮的像素位數(shù)為4的DIB位圖中,每個(gè)字節(jié)存儲(chǔ)兩個(gè)像素,高四位對(duì)應(yīng)于最左邊的像素,每行填充到一個(gè)四字節(jié)邊界。采用RLE編碼壓縮的四位DIB由一系列組組成。有三種類型的組:重復(fù)組、文字組和特殊組。重復(fù)組由兩個(gè)字節(jié)組成,第一個(gè)字節(jié)表示像素個(gè)數(shù),第二個(gè)字節(jié)表示一對(duì)像素的值。文字組由一個(gè)0字節(jié)、一個(gè)像素計(jì)數(shù)字節(jié)和文字像素字節(jié)組成。像素計(jì)數(shù)值必須至少為3(小于3時(shí),可采用重復(fù)組編碼),文字像素應(yīng)填充到一個(gè)偶數(shù)字節(jié)邊界。特殊組中,00 00表示一行的結(jié)束,00 01表示位圖的結(jié)束,00 02 xx yy表示位置增量,即圖像向右走xx個(gè)像素,向下走yy個(gè)像素。

在沒(méi)有壓縮的像素位數(shù)為8的DIB位圖中,每個(gè)字節(jié)存儲(chǔ)一個(gè)像素,每行填充到一個(gè)四字節(jié)邊界。采用R LE編碼壓縮的四位DIB由一系列組組成。有三種類型的組:重復(fù)組、文字組和特殊組。重復(fù)組內(nèi)兩個(gè)字節(jié)組成,第一個(gè)字節(jié)表示像素個(gè)數(shù),第二個(gè)字節(jié)表示像素值。文字組由一個(gè)0字節(jié)、一個(gè)像素計(jì)數(shù)字節(jié)和文字像素字節(jié)組成。像素計(jì)數(shù)值必須至少為3(小于3時(shí),可采用重復(fù)組編碼),文字像素應(yīng)填充到一個(gè)偶數(shù)字節(jié)邊界。特殊組中,00 00表示一行的結(jié)束,00 01表示位圖的結(jié)束,0002xx yy表示位置增量,即圖像向右走xx個(gè)像素, 向下走yy個(gè)像素。在像素位數(shù)為24的DIB位圖中,每個(gè)像素占三字節(jié),從左到右的每一字節(jié)分別存儲(chǔ)藍(lán)、綠、紅的顏色值。每行用0填充到一個(gè)四字節(jié)邊界。

OS/2 DIB和Windows DIB的主要區(qū)別是位圖信息結(jié)構(gòu)(信息頭結(jié)構(gòu)和顏色表結(jié)構(gòu))不同。而它們的圖像位數(shù)據(jù)的存儲(chǔ)方式是完全一樣的。

我們知道,普通的顯示器屏幕是由許許多多點(diǎn)構(gòu)成的,我們稱之為象素。顯示時(shí)采用掃描的方法:電子槍每次從左到右掃描一行,為每個(gè)象素著色,然后從上到下這樣掃描若干行,就掃過(guò)了一屏。為了防止閃爍,每秒要重復(fù)上述過(guò)程幾十次。例如我們常說(shuō)的屏幕分辨率為640×480,刷新頻率為70Hz,意思是說(shuō)每行要掃描640個(gè)象素,一共有480行,每秒重復(fù)掃描屏幕70次。我們稱這種顯示器為位映象設(shè)備。所謂位映象,就是指一個(gè)二維的象素矩陣,而位圖就是采用位映象方法顯示和存儲(chǔ)的圖象。舉個(gè)例子,圖1.1是一幅普通的黑白位圖,圖1.2是被放大后的圖,圖中每個(gè)方格代表了一個(gè)象素。我們可以看到:整個(gè)骷髏就是由這樣一些黑點(diǎn)和白點(diǎn)組成的。在設(shè)計(jì)中,我們也是對(duì)圖像的像元進(jìn)行處理的。

? ??而自然界中的所有顏色都可以由紅、綠、藍(lán)(R,G,B)組合而成。有的顏色含有紅色成分多一些,如深紅;有的含有紅色成分少一些,如淺紅。針對(duì)含有紅色成分的多少,可以分成0到255共256個(gè)等級(jí),0級(jí)表示不含紅色成分;255級(jí)表示含有100%的紅色成分。同樣,綠色和藍(lán)色也被分成256級(jí)。這種分級(jí)概念稱為量化。這樣,根據(jù)紅、綠、藍(lán)各種不同的組合我們就能表示出256×256×256,約1600萬(wàn)種顏色。這么多顏色對(duì)于我們?nèi)搜蹃?lái)說(shuō)已經(jīng)足夠豐富了。

常見(jiàn)顏色的RGB組合值

顏色?? R? ?? G?? ?? B

紅? ?? 255 ?? 0?? ?? 0

藍(lán)? ??? 0? ? 255? ?? 0

綠? ??? 0? ?? 0?? ? 255

黃? ?? 255?? 255? ?? 0

紫? ?? 255 ?? 0?? ? 255

青? ? ??0? ? 255? ? 255

白? ?? 255 ? 255? ? 255

黑? ??? 0? ?? 0?? ?? 0

灰? ?? 128 ? 128? ? 128

當(dāng)一幅圖中每個(gè)象素賦予不同的RGB值時(shí),能呈現(xiàn)出五彩繽紛的顏色了,這樣就形成了彩色圖。

圖象數(shù)據(jù)就是該象素顏在調(diào)色板中的索引值。對(duì)于真彩色圖,圖象數(shù)據(jù)就是實(shí)際的R、G、B值。對(duì)于2色位圖,用1位就可以表示該象素的顏色(一般0表示黑,1表示白),所以一個(gè)字節(jié)可以表示8個(gè)象素。對(duì)于16色位圖,用4位可以表示一個(gè)象素的顏色,所以一個(gè)字節(jié)可以表示2個(gè)象素。對(duì)于256色位圖,一個(gè)字節(jié)剛好可以表示1個(gè)象素。對(duì)于真彩色圖,三個(gè)字節(jié)才能表示1個(gè)象素。

要注意兩點(diǎn):

? (1)每一行的字節(jié)數(shù)必須是4的整倍數(shù),如果不是,則需要補(bǔ)齊。這在前面介紹biSizeImage時(shí)已經(jīng)提到了。

? (2)一般來(lái)說(shuō),.bMP文件的數(shù)據(jù)從下到上,從左到右的。也就是說(shuō),從文件中最先讀到的是圖象最下面一行的左邊第一個(gè)象素,然后是左邊第二個(gè)象素……接下來(lái)是倒數(shù)第二行左邊第一個(gè)象素,左邊第二個(gè)象素……依次類推,最后得到的是最上面一行的最右一個(gè)象素。

? Windows操作系統(tǒng)統(tǒng)一管理著諸如顯示,打印等操作,將它們看作是一個(gè)個(gè)的設(shè)備,每一個(gè)設(shè)備都有一個(gè)復(fù)雜的數(shù)據(jù)結(jié)構(gòu)來(lái)維護(hù)。所謂設(shè)備上下文就是指這個(gè)數(shù)據(jù)結(jié)構(gòu)。然而,我們不能直接和這些設(shè)備上下文打交道,只能通過(guò)引用標(biāo)識(shí)它的句柄(實(shí)際上是一個(gè)整數(shù)),讓W(xué)indows去做相應(yīng)的處理。

2.2? 圖像的讀取

? ??圖像讀取主要方法是利用OpenFileDialog(文件打開控件)獲得打開圖像的絕對(duì)路徑,用System.Drawing里Bitmap.FromFile方法將所獲得的圖像轉(zhuǎn)換成DIB并加載到內(nèi)存中,同時(shí)將加載的圖像復(fù)制到pictureBox1圖像框中。

private void menuItem2_Click(object sender, System.EventArgs e)

{

OpenFileDialog imageopen = new OpenFileDialog();

imageopen.Title = "請(qǐng)打開圖像文件" ;

imageopen.InitialDirectory = @"c:/" ;

imageopen.Filter = "(圖像文件)*.bmp;jepg;jpg;gif;png|*.bmp;*.jepg;*.jpg;*.gif;*.png" ;

imageopen.FilterIndex = 1 ;

imageopen.RestoreDirectory = true ;

if(imageopen.ShowDialog() == DialogResult.OK)

{

filepath=imageopen.FileName;

this.progressBar1.Value=20;

this.pictureBox1.Image=System.Drawing.Bitmap.FromFile(filepath);

}

this.pictureBox2.Image=null;

}?

3? 灰度直方圖

3.1灰度直方圖的基本概念

從某種角度上來(lái)講,圖像處理是基于統(tǒng)計(jì)學(xué)概念上的,所以,為了能夠?qū)D像變成計(jì)算機(jī)所能夠識(shí)別并處理的數(shù)據(jù),我們必須對(duì)圖像進(jìn)行量化,使得我們能從數(shù)值概念上獲得對(duì)圖像的映像。這里,我們引入灰度圖像的概念:灰度圖像是一種具有從黑到白256級(jí)灰度色域或等級(jí)的單色圖像。該圖像中的每個(gè)像素用8位數(shù)據(jù)表示,因此像素點(diǎn)值介于黑白間的256種灰度中的一種。該圖像只有灰度等級(jí),而沒(méi)有顏色的變化。這樣,我們可以將圖像的RGB屬性歸一為灰度屬性,由此就可以方便我們對(duì)圖像進(jìn)行處理。

3.2? 如何獲取灰度直方圖

首先我們應(yīng)該清楚的是灰度直方圖是一個(gè)從0-255范圍變化的步長(zhǎng)為一的數(shù)組,數(shù)組的每一個(gè)元素對(duì)應(yīng)的是每一個(gè)灰度值。在這里,我們首先定義了一個(gè)int型數(shù)組,數(shù)組的大小為256,數(shù)組名為Histogram。其中,Histogram[i]對(duì)應(yīng)得是灰度為i的像素的個(gè)數(shù)。

在這里,我們使用的計(jì)算灰度的算法為Gray=(int)(0.3*r+0.59*g+0.11*b)。其中,r,g,b分別為所處理像素的RGB值。算法的源代碼如下:

private void menuItem24_Click(object sender, System.EventArgs e)

?????? {

?????????? ??? int height=this.pictureBox1.Image.Height;

????????????? int width=this.pictureBox1.Image.Width;

????????????? Bitmap process=(Bitmap)this.pictureBox1.Image;

????????????? Color pixel;

????????????? int? [] Histogram=new int[256];

????????????? int Times,Gray,r,g,b;

????????????? for (i=0;i<=255;i++)

????????????? {

????????????????? Histogram[i]=0;

????????????? }

????????????? for(i=0;i<width;i++)

????????????? {

????????????????? for(j=0;j<height;j++)

????????????????? {

???????????????????? pixel=process.GetPixel(i,j);

???????????????????? r=pixel.R;

???????????????????? g=pixel.G;

???????????????????? b=pixel.B;

???????????????????? Gray=(int)(0.3*r+0.59*g+0.11*b);

???????????????????? Histogram[Gray]=Histogram[Gray]+1;

????????????????? }

????????????? }

?????? }

下圖為對(duì)某一圖像處理后所獲得的灰度直方圖,從該圖中我們可以獲得一個(gè)圖像的灰度分布的直觀映像。

4???????? 圖象的幾何變換

4.1平移

平移(translation)變換大概是幾何變換中最簡(jiǎn)單的一種了。如下圖,初始坐標(biāo)為(x0,y0)的點(diǎn)經(jīng)過(guò)平移(tx,ty)(以向右,向下為正方向)后,坐標(biāo)變?yōu)?x1,y1)。這兩點(diǎn)之間的關(guān)系是x1=x0+tx ,y1=y0+ty。

如下圖所示

?

以矩陣的形式表示為

?

我們更關(guān)心的是它的逆變換:

?

這是因?yàn)?#xff1a;我們想知道的是平移后的圖象中每個(gè)象素的顏色。例如我們想知道,新圖中左上角點(diǎn)的RGB值是多少?很顯然,該點(diǎn)是原圖的某點(diǎn)經(jīng)過(guò)平移后得到的,這兩點(diǎn)的顏色肯定是一樣的,所以只要知道了原圖那點(diǎn)的RGB值即可。那么到底新圖中的左上角點(diǎn)對(duì)應(yīng)原圖中的哪一點(diǎn)呢?將左上角點(diǎn)的坐標(biāo)(0,0)入公式(2.2),得到x0=-tx ,y0=-ty;所以新圖中的(0,0)點(diǎn)的顏色和原圖中(-tx , -ty)的一樣。這樣就存在一個(gè)問(wèn)題:如果新圖中有一點(diǎn)(x1,y1),按照公式(2.2)得到的(x0,y0)不在原圖中該怎么辦?通常的做法是,把該點(diǎn)的RGB值統(tǒng)一設(shè)成(0,0,0)或者(255,255,255)。

4.2旋轉(zhuǎn)

旋轉(zhuǎn)(rotation)有一個(gè)繞著什么轉(zhuǎn)的問(wèn)題,通常的做法是以圖象的中心為圓心旋轉(zhuǎn)。在我們熟悉的坐標(biāo)系中,將一個(gè)點(diǎn)順時(shí)針旋轉(zhuǎn)a角后的坐標(biāo)變換公式,如下圖所示,r為該點(diǎn)到原點(diǎn)的距離,在旋轉(zhuǎn)過(guò)程中,r保持不變;b為r與x軸之間的夾角。

?

旋轉(zhuǎn)前:x0=rcosb;y0=rsinb

旋轉(zhuǎn)a角度后:

x1=rcos(b-a)=rcosbcosa+rsinbsina=x0cosa+y0sina;

y1=rsin(b-a)=rsinbcosa-rcosbsina=-x0sina+y0cosa;

以矩陣的形式表示:

?

上面的公式中,坐標(biāo)系xoy是以圖象的中心為原點(diǎn),向右為x軸正方向,向上為y軸正方向。它和以圖象左上角點(diǎn)為原點(diǎn)o’,向右為x’軸正方向,向下為y’軸正方向的坐標(biāo)系x’o’y’之間的轉(zhuǎn)換關(guān)系如何呢

?

設(shè)圖象的寬為w,高為h,容易得到:

?

逆變換為:

?

理解了上述理論基礎(chǔ),其實(shí)在C#中我們有現(xiàn)成的方法函數(shù)進(jìn)行操作,我們可以利用Graphics對(duì)象所生成的g.RotateTransform方法函數(shù)來(lái)對(duì)圖像進(jìn)行旋轉(zhuǎn)操作。圖像旋轉(zhuǎn)后我們還需要將旋轉(zhuǎn)所得到的圖像填充到指定的矩形區(qū)域中,在這里我們使用了g.FillRectangle方法函數(shù)來(lái)進(jìn)行填充。

private void panel2_Paint(object sender, System.Windows.Forms.PaintEventArgs e)

?????? {

????????????? this.panel2.Refresh();

????????????? Graphics g = e.Graphics;

????????????? int angel=Convert.ToInt16(this.numericUpDown4.Value);

????????????? System.Drawing.Bitmap temp=new Bitmap(filepath);

????????????? TextureBrush brush=new TextureBrush(temp);

????????????? g.RotateTransform(flaot(angel));??????? ??? g.FillRectangle(brush,0,0,this.ClientRectangle.Width,this.ClientRectangle.Height);

????????????? return;

?????? }

?4.3縮放

假設(shè)放大因子為ratio,(為了避免新圖過(guò)大或過(guò)小,我們?cè)诔绦蛑邢拗?.25≤ratio≤4),縮放(zoom)的變換矩陣很簡(jiǎn)單:

?

由于放大圖象時(shí)產(chǎn)生了新的象素,以及浮點(diǎn)數(shù)的操作,得到的坐標(biāo)可能并不是整數(shù),這一點(diǎn)我們?cè)诮榻B旋轉(zhuǎn)時(shí)就提到了。我們采用的做法是找與之最臨近的點(diǎn)。實(shí)際上,更精確的做法是采用插值(interpolation),即利用鄰域的象素來(lái)估計(jì)新的象素值。其實(shí)我們前面的做法也是一種插值,稱為最鄰近插值(Nearest Neighbour Interpolation)。下面先介紹線形插值(Linear Interpolation)。

線形插值使用原圖中兩個(gè)值來(lái)構(gòu)造所求坐標(biāo)處的值。舉一個(gè)一維的例子。下圖所示,如果已經(jīng)知道了兩點(diǎn)x0,x2處的函數(shù)值f(x0),f(x2),現(xiàn)在要求x1處的函數(shù)值f(x1)。我們假設(shè)函數(shù)是線形的,利用幾何知識(shí)可以知道

f(x1)=(f(x2)-f(x0))(x1-x0)/(x2-x0)+f(x0)

在圖象處理中需要將線形插值擴(kuò)展到二維的情況,即采用雙線形插值(Bilinear Intrepolation),?

線形插值的示意圖

?

?? 雙線形插值的示意圖

已知a、b、c、d四點(diǎn)的灰度,要求e點(diǎn)的灰度,可以先在水平方向上由a,b線形插值求出g、c、d線形插值求出f,然后在垂直方向上由g,f線形插值求出e。

線形插值基于這樣的假設(shè):原圖的灰度在兩個(gè)象素之間是線形變化的。一般情況下,這種插值的效果還不錯(cuò)。更精確的方法是采用曲線插值(Curvilinear Interpolation),即認(rèn)為象素之間的灰度變化規(guī)律符合某種曲線,但這種處理的計(jì)算量是很大的。

同樣的,我們可以利用Graphics對(duì)象所生成的g.FillRectangle方法函數(shù)來(lái)對(duì)圖像進(jìn)行縮放操作。圖像縮放后我們還需要將縮放所得到的圖像填充到指定的矩形區(qū)域中,同樣在這里我們使用了g.FillRectangle方法函數(shù)來(lái)進(jìn)行填充。

private void panel2_Paint(object sender, System.Windows.Forms.PaintEventArgs e)

?????? {

?????????? this.panel2.Refresh();

????????????? Graphics g = e.Graphics;

????????????? float fx=(float)(this.numericUpDown1.Value/10);

????????????? float fy=(float)(this.numericUpDown2.Value/10);

????????????? System.Drawing.Bitmap temp=new Bitmap(filepath);

????????????? TextureBrush brush=new TextureBrush(temp);

????????????? g.ScaleTransform(fx,fy);

?????????? ??? g.FillRectangle(brush,0,0,this.ClientRectangle.Width,this.ClientRectangle.Height);

????????????? checkscale=0;

?????? }

5 簡(jiǎn)單圖像處理

5.1? 黑白處理:

彩色圖像黑白化處理通常有三種方法:最大值法、平均值法、加權(quán)平均值法
三種方法的原理
??????? 最大值法:最大值法是每個(gè)像素點(diǎn)的RGB值等于原像素點(diǎn)的RGB值中最大的一個(gè),即R=G=B=MAX( R,G,B ); 效果,最大值發(fā)產(chǎn)生亮度很高的黑白圖像。
??????? 平均值法:平均值法使每個(gè)像素點(diǎn)的RGB值等于原像素點(diǎn)的RGB值的平均值,即R=G=B=(R+G+B)/3?
??????? 加權(quán)平均法:加權(quán)平均法根據(jù)需要指定每個(gè)像素點(diǎn)RGB的權(quán)數(shù),并取其加權(quán)平均值,即R=G=B=(Wr*R+Wg*G+Wb*B )/3?。Wr、Wg、Wb表示RGB的權(quán)數(shù),均大于零,通過(guò)取不同的權(quán)數(shù)可實(shí)現(xiàn)不同的效果。

? 本程序中采用的是平均值法來(lái)處理圖像:

private void menuItem20_Click(object sender, System.EventArgs e)

?????? {

?????????? if(this.pictureBox1.Image!=null)

?????????? {

????????????? this.pictureBox2.Visible=true;

????????????? int height=this.pictureBox1.Image.Height;

????????????? int width=this.pictureBox1.Image.Width;

????????????? Bitmap temp=new Bitmap(width,height);

????????????? Bitmap process=(Bitmap)this.pictureBox1.Image;

????????????? Color pixel;

????????????? for( int x=0;x<width;x++)

????????????? {

????????????????? for(int y=0;y<height;y++)

????????????????? {

???????????????????? int r,g,b,t;

???????????????????? pixel=process.GetPixel(x,y);

???????????????????? t=(pixel.R+pixel.G+pixel.B)/3;

?????????? ?????????? r=t;

???????????????????? g=t;

???????????????????? b=t;

???????????????????? temp.SetPixel(x,y,Color.FromArgb(r,g,b));

????????????????? }

????????????? }

????????????? this.pictureBox2.Image=temp;

?????????? }

?????? }?????

?

5.2? 浮雕處理

浮雕效果就是只將圖像的變化部分突出出來(lái),而相同顏色部分則被淡化,使圖像出現(xiàn)縱深感,從而達(dá)到浮雕效果,這里采用的算法是將要處理的像素取值為與處于對(duì)角線上的另一個(gè)像素間的差值,這樣只有顏色變化區(qū)才會(huì)出現(xiàn)色彩,而顏色平淡區(qū)因差值幾乎為零則變成黑色。

???? ??? private void menuItem21_Click(object sender, System.EventArgs e)

?????? {

?????????? if(this.pictureBox1.Image!=null)

?????????? {

????????????? this.pictureBox2.Visible=true;

????????????? int height=this.pictureBox1.Image.Height;

????????????? int width=this.pictureBox1.Image.Width;

????????????? Bitmap temp=new Bitmap(width,height);

????????????? Bitmap process=(Bitmap)this.pictureBox1.Image;

????????????? Color pixel,pixelnext;

????????????? for( int x=0;x<width-1;x++)

????????????? {

????????????????? this.progressBar1.Value=(int)(((float)x/(float)width)*100);

????????????????? for(int y=0;y<height-1;y++)

????????????????? {

?????????????????

???????????????????? int r,g,b;

???????????????????? pixel=process.GetPixel(x,y);

???????????????????? pixelnext=process.GetPixel(x+1,y+1);

???????????????????? r=pixel.R-pixelnext.R+128;

???????????????????? b=pixel.B-pixelnext.B+128;

???????????????????? g=pixel.G-pixelnext.G+128;

???????????????????? r=Judge(r);

???????????????????? g=Judge(g);

???????????????????? b=Judge(b);

?????? ????????????? temp.SetPixel(x,y,Color.FromArgb(r,g,b));

????????????????? }

????????????? }

????????????? this.pictureBox2.Image=temp;

?????????? }

5.2? 反色處理

反色的實(shí)際含義是將R、G、B值反轉(zhuǎn)。若顏色的量化級(jí)別是256,則新圖的R、G、B值為255減去原圖的R、G、B值。這里針對(duì)的是所有圖,包括真彩圖、帶調(diào)色板的彩色圖(又稱為偽彩色圖)、和灰度圖。

private void menuItem22_Click(object sender, System.EventArgs e)

?????? {

?????????? if(this.pictureBox1.Image!=null)

?????????? {

????????????? this.pictureBox2.Visible=true;

????????????? int height=this.pictureBox1.Image.Height;

????????????? int width=this.pictureBox1.Image.Width;

????????????? Bitmap temp=new Bitmap(width,height);

????????????? Bitmap process=(Bitmap)this.pictureBox1.Image;

????????????? Color pixel;

????????????? for( int x=0;x<width;x++)

????????????? {

????????????????? this.progressBar1.Value=(int)(((float)x/(float)width)*100);

????????????????? for(int y=0;y<height;y++)

????????????????? {

???????????????????? int r,g,b;

???????????????????? pixel=process.GetPixel(x,y);

???????????????????? r=255-pixel.R;

???????????????????? g=255-pixel.G;

???????????????????? b=255-pixel.B;

???????????????????? temp.SetPixel(x,y,Color.FromArgb(r,g,b));

????????????????? }

????????????? }

????????????? this.pictureBox2.Image=temp;

?????????? }

?????? }

6圖象的輪廓提取

圖像的邊緣(輪廓)是圖像最基本的特征。所謂邊緣(或邊沿)是指其周圍象素灰度有階躍 變化或“屋頂”變化的那些象素的集合。邊緣廣泛存在于物體與背景之間、物體與物體之間、基元與基元之間。因此,它是圖像分割依賴的重要特征。

物體的邊緣是由灰度不連續(xù)性形成的。經(jīng)典的邊緣提取方法是考察圖像的每個(gè)象素在某個(gè)鄰域內(nèi)灰度的變化,利用邊緣鄰近一階或二階方向?qū)?shù)變化規(guī)律,用簡(jiǎn)單的方法檢測(cè)邊緣。這種方法稱為邊緣檢測(cè)局部算子法。如果一個(gè)象素落在圖像中某一個(gè)物體的邊界上,那么他 的鄰域?qū)⒊蔀橐粋€(gè)灰度級(jí)的變化帶。對(duì)這種變化最有用的2個(gè)特征:灰度的變化率和方向, 他們分別以梯度向量的幅度和方向來(lái)表示。邊緣檢測(cè)算子檢查每個(gè)象素的鄰域并對(duì)灰度變化率進(jìn)行量化,也包括方向的確定。常用的檢測(cè)算子有Roerts算子、Sobel算子、Prewitt 算子和 Kirsh 算子等。

我們給出一個(gè)模板 和一幅圖象 。不難發(fā)現(xiàn)原圖中左邊暗,右邊亮,中間存在著一條明顯的邊界。進(jìn)行模板操作后的結(jié)果如下:

可以看出,第3、4列比其他列的灰度值高很多,人眼觀察時(shí),就能發(fā)現(xiàn)一條很明顯的亮邊,其它區(qū)域都很暗,這樣就起到了邊沿檢測(cè)的作用。為什么會(huì)這樣呢?仔細(xì)看看那個(gè)模板就明白了,它的意思是將右鄰點(diǎn)的灰度值減左鄰點(diǎn)的灰度值作為該點(diǎn)的灰度值。在灰度相近的區(qū)域內(nèi),這么做的結(jié)果使得該點(diǎn)的灰度值接近于0;而在邊界附近,灰度值有明顯的跳變,這么做的結(jié)果使得該點(diǎn)的灰度值很大,這樣就出現(xiàn)了上面的結(jié)果。這種模板就是一種邊沿檢測(cè)器,它在數(shù)學(xué)上的涵義是一種基于梯度的濾波器,又稱邊沿算子,你沒(méi)有必要知道梯度的確切涵義,只要有這個(gè)概念就可以了。梯度是有方向的,和邊沿的方向總是正交(垂直)的,例如,對(duì)于上面那幅圖象的轉(zhuǎn)置圖象,邊是水平方向的,我們可以用梯度是垂直方向的模板 檢測(cè)它的邊沿。

例如,一個(gè)梯度為45度方向模板 ,可以檢測(cè)出135度方向的邊沿。

6 .1Sobel算子輪廓提取:

在邊沿檢測(cè)中,常用的一種模板是Sobel 算子。Sobel 算子有兩個(gè),一個(gè)是檢測(cè)水平邊沿的 ;另一個(gè)是檢測(cè)垂直平邊沿的 。與 相比,Sobel算子對(duì)于象素的位置的影響做了加權(quán),因此效果更好。

Sobel算子另一種形式是各向同性Sobel(Isotropic Sobel)算子,也有兩個(gè),一個(gè)是檢測(cè)水平邊沿的 ,另一個(gè)是檢測(cè)垂直平邊沿的 。各向同性Sobel算子和普通Sobel算子相比,它的位置加權(quán)系數(shù)更為準(zhǔn)確,在檢測(cè)不同方向的邊沿時(shí)梯度的幅度一致。由于建筑物圖像的特殊性,我們可以發(fā)現(xiàn),處理該類型圖像輪廓時(shí),并不需要對(duì)梯度方向進(jìn)行運(yùn)算,所以程序并沒(méi)有給出各向同性Sobel算子的處理方法。下面的兩幅圖中,下左圖為原圖;下右圖為Sobel算子處理后的結(jié)果圖??梢钥闯?/span>Sobel算子確實(shí)把圖象中的邊沿提取了出來(lái)。

?????????????????????? ?

原圖?????????????? ? ???????????????Sobel算子處理后的結(jié)果圖

? ??由于Sobel算子是濾波算子的形式,用于提取邊緣,可以利用快速卷積函數(shù), 簡(jiǎn)單有效,因此應(yīng)用廣泛。美中不足的是,Sobel算子并沒(méi)有將圖像的主體與背景嚴(yán)格地區(qū)分開來(lái),換言之就是Sobel算子沒(méi)有基于圖像灰度進(jìn)行處理,由于Sobel算子沒(méi)有嚴(yán)格地模擬人的視覺(jué)生理特征,所以提取的圖像輪廓有時(shí)并不能令人滿意。? 在觀測(cè)一幅圖像的時(shí)候,我們往往首先注意的是圖像與背景不同的部分,正是這個(gè)部分將主體突出顯示,基于該理論,我們給出了下面閾值化輪廓提取算法,該算法已在數(shù)學(xué)上證明當(dāng)像素點(diǎn)滿足正態(tài)分布時(shí)所求解是最優(yōu)的。

6 .2閾值化提取:

閾值化(thresholding)可以看作是削波的一個(gè)特例,我們用下圖說(shuō)明閾值化的原理。

?

閾值化的原理

不難看出,只要令削波中的g1old=g2old就實(shí)現(xiàn)了閾值化。閾值就象個(gè)門檻,比它大就是白,比它小就是黑。經(jīng)過(guò)閾值化處理后的圖象變成了黑白二值圖,所以說(shuō)閾值化是灰度圖轉(zhuǎn)二值圖的一種常用方法(我們以前介紹過(guò)圖案化和抖動(dòng)的方法)。進(jìn)行閾值化只需給出閾值點(diǎn)g1old即可。一般情況下,閾值的選取對(duì)程序執(zhí)行結(jié)果有很大的影響,在本程序中采取的是直方圖求門限,迭代法求最佳閾值的方法,這個(gè)方法在數(shù)學(xué)上已被證明當(dāng)圖像像素概率分布逼近正態(tài)分布時(shí)是最佳的。閾值化處理后的結(jié)果,是一幅二值圖像

?

閾值化處理后的結(jié)果

在這里,閾值的選取是很重要的,閾值如果過(guò)高,就會(huì)產(chǎn)生將圖像主體誤認(rèn)為是背景的情況;閾值如果過(guò)低,則會(huì)將背景部分誤認(rèn)為是主體部分。因此,我們應(yīng)該仔細(xì)選擇閾值,我認(rèn)為閾值不應(yīng)該是一個(gè)固定的值,它的值應(yīng)該隨著圖像的不同而不同。在本程序中,采取了動(dòng)態(tài)求取閾值的方法。首先我們先求得被處理圖像的灰度直方圖,根據(jù)直方圖求得最大灰度與最小灰度。我們?cè)O(shè)置閾值的初值為最大灰度與最小灰度值之和的一半。然后求得小于閾值部分灰度的平均值iMean1Gray和大于閾值部分的平均值iMean2Gray,將閾值重新設(shè)為這兩個(gè)灰度均值 的一半,如此迭代,最后求得最佳閾值iThreshold。實(shí)驗(yàn)結(jié)果證明該閾值是可信的,基本上可以把主體與背景區(qū)分開來(lái)。求閾值的代碼如下:

for(Times=0;Times<128&&iThreshold!=iNewThreshold;Times++)

?????????? {

?????????? ??? iThreshold=iNewThreshold;

????????????? lP1=0;

????????????? lP2=0;

????????????? lS1=0;

????????????? lS2=0;

????????????? for(i=iMinGray;i<iThreshold;i++)

????????????? {

????????????????? lP1+=Histogram[i]*i;

????????????????? lS1+=Histogram[i];

????????????? }

????????????? iMean1Gray=lP1/lS1;

????????????? for(i=iThreshold;i<iMaxGray;i++)

????????????? {

????????????????? lP2+=Histogram[i]*i;

????????????????? lS2+=Histogram[i];

????????????? }

????????????? iMean2Gray=lP2/lS2;

????????????? iNewThreshold=(iMean1Gray+iMean2Gray)/2;

????????? }

6 .3? Robert算子輪廓提取

Roberts邊緣檢測(cè)算子是一種利用局部差分算子尋找邊緣的算子

?

????????????????? ???Robert算子輪廓提取結(jié)果

可以看出,圖像處理后結(jié)果邊緣不是很平滑。經(jīng)分析,由于Robert算子通常會(huì)在圖像邊緣附近的區(qū)域內(nèi) 產(chǎn)生較寬的響應(yīng),故采用上述算子檢測(cè)的邊緣圖像常需做細(xì)化處理,邊緣定位的精度不是很高。

private void menuItem23_Click(object sender, System.EventArgs e)

?????? {

?????????? if(this.pictureBox1.Image!=null)

?????????? {

????????????? this.pictureBox2.Visible=true;

????????????? int height=this.pictureBox1.Image.Height;

????????????? int width=this.pictureBox1.Image.Width;

????????????? Bitmap temp=new Bitmap(width,height);

????????????? Bitmap process=(Bitmap)this.pictureBox1.Image;

????????????? int i,j,p0,p1,p2,p3;

????????????? Color [] pixel=new Color[4];

????????????? int result;

????????????? for(j=height-2;j>0;j--)

????????????? {

????????????????? for(i=0;i<width-2;i++)

????????????????? {

????????????????? ??? pixel[0]=process.GetPixel(i,j);

???????????????????? pixel[1]=process.GetPixel(i,j+1);

???????????????????? pixel[2]=process.GetPixel(i+1,j);

???????????????????? pixel[3]=process.GetPixel(i+1,j+1);

???????????????????? p0=(int)(0.3*pixel[0].R+0.59*pixel[0].G+0.11*pixel[0].B);

???????????????????? p1=(int)(0.3*pixel[1].R+0.59*pixel[1].G+0.11*pixel[1].B);

???????????????????? p2=(int)(0.3*pixel[2].R+0.59*pixel[2].G+0.11*pixel[2].B);

???????????????????? p3=(int)(0.3*pixel[3].R+0.59*pixel[3].G+0.11*pixel[3].B);

???????????????????? result=(int)Math.Sqrt((p0-p3)*(p0-p3)+(p1-p2)*(p1-p2));

???????????????????? if (result>255)

???????????????????????? result=255;

???????????????????? if (result<0)

???????????????????????? result=0;

???????????????????? temp.SetPixel(i,j,Color.FromArgb(result,result,result));

????????????????? }

????????????? }

????????????? this.pictureBox2.Image=temp;

?????????? }

?????? }

6程序運(yùn)行

6 .1 程序運(yùn)行主界面

?

6 .2 相關(guān)功能介紹

在文件菜單下,可以實(shí)現(xiàn)圖像的打開,保存,程序的退出等功能。

?

編輯菜單下可以將操作結(jié)果欄的圖像復(fù)制到緩存中

?

視圖菜單下可實(shí)現(xiàn)程序的所有圖像處理功能,并可以將被處理圖像轉(zhuǎn)換為源圖像。

?

窗口欄可將操作結(jié)果的圖像關(guān)閉。

?

程序處理圖像的結(jié)果如下圖所示,左邊為被處理圖像,右邊為處理結(jié)果圖像。

?

結(jié)? 論

數(shù)字圖像處理主要研究的內(nèi)容有以下幾個(gè)方面: (1) 圖像變換 由于圖像陣列很大,直接在空間域中進(jìn)行處理,涉及計(jì)算量很大。因此,往往采用各種圖像變換的方法,如傅立葉變換、沃爾什變換、離散余弦變換等間接處理技術(shù),將空間域的處理轉(zhuǎn)換為變換域處理,不僅可減少計(jì)算量,而且可獲得更有效的處理(如傅立葉變換可在頻域中進(jìn)行數(shù)字濾波處理)。(2) 圖像編碼壓縮 圖像編碼壓縮技術(shù)可減少描述圖像的數(shù)據(jù)量(即比特?cái)?shù)),以便節(jié)省圖像傳輸、處理時(shí)間和減少所占用的存儲(chǔ)器容量。壓縮可以在不失真的前提下獲得,也可以在允許的失真條件下進(jìn)行。編碼是壓縮技術(shù)中最重要的方法,它在圖像處理技術(shù)中是發(fā)展最早且比較成熟的技術(shù)。(3) 圖像增強(qiáng)和復(fù)原圖像增強(qiáng)和復(fù)原的目的是為了提高圖像的質(zhì)量,如去除噪聲,提高圖像的清晰度等。圖像增強(qiáng)不考慮圖像降質(zhì)的原因,突出圖像中所感興趣的部分。如強(qiáng)化圖像高頻分量,可使圖像中物體輪廓清晰,細(xì)節(jié)明顯;如強(qiáng)化低頻分量可減少圖像中噪聲影響。圖像復(fù)原要求對(duì)圖像降質(zhì)的原因有一定的了解,一般講應(yīng)根據(jù)降質(zhì)過(guò)程建立"降質(zhì)模型",再采用某種濾波方法,恢復(fù)或重建原來(lái)的圖像。(4) 圖像分割 圖像分割是數(shù)字圖像處理中的關(guān)鍵技術(shù)之一。圖像分割是將圖像中有意義的特征部分提取出來(lái),其有意義的特征有圖像中的邊緣、區(qū)域等,這是進(jìn)一步進(jìn)行圖像識(shí)別、分析和理解的基礎(chǔ)。雖然目前已研究出不少邊緣提取、區(qū)域分割的方法,但還沒(méi)有一種普遍適用于各種圖像的有效方法。因此,對(duì)圖像分割的研究還在不斷深入之中,是目前圖像處理中研究的熱點(diǎn)之一,這個(gè)同時(shí)也是本設(shè)計(jì)的重中之重。(5) 圖像描述 圖像描述是圖像識(shí)別和理解的必要前提。作為最簡(jiǎn)單的二值圖像可采用其幾何特性描述物體的特性,一般圖像的描述方法采用二維形狀描述,它有邊界描述和區(qū)域描述兩類方法。對(duì)于特殊的紋理圖像可采用二維紋理特征描述.(6) 圖像分類(識(shí)別)屬于模式識(shí)別的范疇,其主要內(nèi)容是圖像經(jīng)過(guò)某些預(yù)處理(增強(qiáng)、復(fù)原、壓縮)后,進(jìn)行圖像分割和特征提取,從而進(jìn)行判決分類。圖像分類常采用經(jīng)典的模式識(shí)別方法,有統(tǒng)計(jì)模式分類和句法(結(jié)構(gòu))模式分類,近年來(lái)新發(fā)展起來(lái)的模糊模式識(shí)別和人工神經(jīng)網(wǎng)絡(luò)模式分類在圖像識(shí)別中也越來(lái)越受到重視

總結(jié)

以上是生活随笔為你收集整理的C#图像处理基础概念知识的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

日批在线看| 久久人人爽人人爽人人片av软件 | 天天操天天干天天综合网 | 精品一区三区 | 国产美女精品在线 | 欧美日本啪啪无遮挡网站 | 九九在线精品视频 | 日韩亚洲欧美中文字幕 | 国产成人精品一区二区三区在线 | 蜜臀av网址| 狠狠做六月爱婷婷综合aⅴ 日本高清免费中文字幕 | 免费看网站在线 | 久久久国产精品免费 | 免费看久久 | 亚洲aⅴ一区二区三区 | 五月视频 | 成人免费xxx在线观看 | 一区二区三区免费在线观看视频 | 手机在线永久免费观看av片 | 成人国产一区 | 天天综合成人网 | 人人爱人人爽 | 日韩视频一区二区三区在线播放免费观看 | 最新久久免费视频 | 2019精品手机国产品在线 | av黄色免费在线观看 | 国产成人一区二区在线观看 | 亚洲国产福利视频 | 亚洲欧洲成人精品av97 | 日韩欧美一区二区三区视频 | 99精品观看| 国产美女视频黄a视频免费 久久综合九色欧美综合狠狠 | 五月天综合婷婷 | 欧美性免费 | 久久久久久久电影 | 91精品视频一区二区三区 | se视频网址 | 波多野结衣一区二区 | 少妇视频在线播放 | 欧美一级片播放 | 国产色啪 | 国产精品久久久久久久久费观看 | 又湿又紧又大又爽a视频国产 | 免费精品人在线二线三线 | 免费进去里的视频 | 欧美a√大片 | 欧美久草网| 日本 在线 视频 中文 有码 | 久久精品久久精品久久 | 亚洲精品视频播放 | 日韩精品免费一线在线观看 | 九色精品免费永久在线 | 91人网站 | 欧美91精品久久久久国产性生爱 | 青青河边草观看完整版高清 | 天天干天天干天天干 | 一区二区三区动漫 | 欧美成人黄色 | 99色资源| 午夜精品婷婷 | 国产精品视频全国免费观看 | 久久视频在线免费观看 | 亚洲一级理论片 | 日韩,精品电影 | 欧美在线久久 | .国产精品成人自产拍在线观看6 | 综合天天网 | 日韩中文字幕91 | 毛片在线播放网址 | 日韩欧美国产成人 | 69夜色精品国产69乱 | 91亚洲在线 | 草莓视频在线观看免费观看 | 国产在线播放一区 | 91精品免费看 | 国产精品美女免费看 | av日韩不卡 | 国产精品久久久亚洲 | 一区二区三区四区五区六区 | 国产日韩欧美在线观看视频 | 亚洲伦理一区二区 | 久久三级毛片 | 久视频在线播放 | 精品国产一区二 | 国产 日韩 欧美 自拍 | 精品国产_亚洲人成在线 | 成人三级av | 中文字幕人成一区 | 日韩高清dvd | 国产字幕在线观看 | 手机在线中文字幕 | 国产剧情一区二区在线观看 | 精品免费观看 | 亚洲jizzjizz日本少妇 | 99精品福利| 日韩精品视频免费专区在线播放 | 不卡的av在线播放 | 国外av在线 | 国产精品theporn | 91九色网站 | 黄色在线观看免费网站 | 国产精品欧美日韩 | jizz18欧美18| 亚洲成人网在线 | 成人免费视频视频在线观看 免费 | 成人av观看 | 国产精品你懂的在线观看 | 国产精品美女免费 | 久久国产精品99久久久久久丝袜 | 最新av观看 | 亚洲免费高清视频 | 五月婷婷在线观看 | 国产在线综合视频 | 国产精品毛片一区视频 | 日本久久视频 | 精品亚洲视频在线观看 | 在线v片免费观看视频 | 日韩动漫免费观看高清完整版在线观看 | 日韩欧美在线视频一区二区三区 | 久久99精品国产一区二区三区 | 中国一级特黄毛片大片久久 | 国产精品99久久久久久武松影视 | 中文字幕一区二区三区久久蜜桃 | 在线天堂亚洲 | 亚洲男男gaygayxxxgv | 天天操天天谢 | 日韩欧美一区二区三区视频 | 五月婷婷黄色 | 99精品视频免费看 | 在线国产中文 | 香蕉91视频 | 日韩欧美在线免费观看 | 97在线视频免费看 | 日本中文字幕系列 | 色综合久久88色综合天天免费 | 欧美999| 久久久久福利视频 | 99在线观看视频网站 | 日本久久免费视频 | 最新av网址在线 | 精品久久网站 | 97免费在线观看视频 | 中文字幕网站视频在线 | 婷婷av资源| 国产资源免费在线观看 | 开心激情综合网 | 国产亚洲字幕 | 在线观看国产永久免费视频 | 国产视频精品网 | 99热精品在线 | 欧美精品被| 久久久av电影 | 91在线免费播放视频 | 国产精品九九久久久久久久 | 婷婷伊人五月天 | 久久99精品久久久久久秒播蜜臀 | 激情五月播播久久久精品 | 国产小视频91 | 免费av看片 | 丁香花在线视频观看免费 | 久久久国产高清 | 国产精品av免费在线观看 | 免费91麻豆精品国产自产在线观看 | 欧美在线久久 | 亚洲激情国产精品 | 在线播放视频一区 | 国产视频久 | 日韩av成人在线观看 | 色综合婷婷 | 韩国精品在线观看 | 国产一区二区高清 | av天天草| 欧美另类亚洲 | 丁香五婷 | 美女久久一区 | 五月天精品视频 | 日韩中文字幕电影 | 麻豆传媒在线免费看 | 免费久久久久久 | 91精品系列| 日日干美女 | 久草色在线观看 | 色婷婷激情电影 | 黄色tv视频| 亚洲三级在线免费观看 | 天天干天天综合 | 亚洲第一区精品 | 天天综合视频在线观看 | 92av视频 | 久久精品欧美一区 | 99热在线这里只有精品 | 免费在线黄网 | 日日夜夜天天干 | 黄色tv视频 | 国产精美视频 | 久久综合偷偷噜噜噜色 | 亚洲在线视频观看 | 亚洲日本国产 | av丝袜在线 | 精品中文字幕在线播放 | 色五丁香 | 色婷婷综合成人av | 欧美激情精品久久久久久免费 | 在线观看免费视频你懂的 | www黄色大片 | 日本久久久久久久久久久 | av色图天堂网 | 亚洲 欧洲 国产 日本 综合 | 国产九九精品 | 国内免费久久久久久久久久久 | 激情久久久| 中国一级片在线观看 | 99国产精品久久久久久久久久 | 91精品国产91久久久久久三级 | 欧美性一级观看 | 欧美日bb| 久草在线视频在线观看 | 久久网站免费 | 精品毛片久久久久久 | 色天堂在线视频 | 久精品在线 | 亚洲第一成网站 | 日韩中文字幕a | 国产精品video爽爽爽爽 | 日日操日日 | 国模精品在线 | 在线观看一区二区精品 | 国产老妇av | 国产在线播放一区二区 | 久久手机在线视频 | 特级黄色一级 | 99免费在线播放99久久免费 | 午夜视频色 | 精品欧美一区二区精品久久 | 欧美精品成人在线 | 丁香五月亚洲综合在线 | 人人添人人澡 | 婷婷综合影院 | 欧美性一级观看 | 黄色亚洲大片免费在线观看 | 在线看小早川怜子av | 久久天天综合网 | 在线免费视频你懂的 | 欧美色综合天天久久综合精品 | 久久这里只有精品9 | 成人黄色小说视频 | 久久99精品国产91久久来源 | 亚洲精品美女久久17c | 亚洲精品在线网站 | 免费亚洲视频在线观看 | www.久久爱.cn | 亚洲成av人片 | 激情五月在线视频 | 久久影院一区 | 在线小视频你懂的 | 亚洲精品小视频 | 最新国产中文字幕 | 99视频在线观看视频 | 成人在线免费视频观看 | 在线观看国产高清视频 | 国产免费三级在线观看 | 国产精品女人久久久 | 99久久er热在这里只有精品15 | 免费日韩精品 | 天天色欧美 | 激情视频免费在线观看 | 日韩欧美电影 | 高清久久久 | 91精品国产一区二区三区 | 亚洲精品乱码久久久久久蜜桃不爽 | 日韩精品一区二区免费 | 高清国产午夜精品久久久久久 | 精品美女久久久久久免费 | 天天干天天摸 | 欧美日韩三级在线观看 | 五月丁香 | 欧美大香线蕉线伊人久久 | 免费看片亚洲 | 亚洲成年人在线播放 | 亚洲影视九九影院在线观看 | 精品国产乱码久久久久久天美 | 99视频播放 | 欧美激情操 | 男女拍拍免费视频 | 成年人黄色免费视频 | 亚洲视频网站在线观看 | 99久久免费看 | 国产九九精品视频 | 天天干天天草天天爽 | 中文字幕在线观看1 | 国产精品一区二区美女视频免费看 | 天天超碰 | 久久手机免费视频 | 最新av在线网址 | 日韩中文字幕免费电影 | 国产黄色大全 | 国产99久久久国产精品 | 色91在线| 狠狠狠狠狠狠操 | 97精品一区 | 91黄色成人 | 欧美另类高清 | 91av在线播放| 国产一区在线精品 | 日韩av一区二区三区在线观看 | 激情婷婷在线 | 国产日韩欧美在线观看视频 | 美女久久久久久久 | 国产原创av在线 | 97超碰在线视 | 免费亚洲成人 | 日韩免费一区二区在线观看 | 亚洲综合导航 | 久久字幕精品一区 | 久久精品国产一区二区三 | 在线视频观看你懂的 | 久久精品国产第一区二区三区 | 久久精品9 | 最新中文字幕在线资源 | 99久免费精品视频在线观看 | 亚洲一区二区精品在线 | 欧美色图亚洲图片 | 日韩在线字幕 | 久久精品国产亚洲 | 在线日韩亚洲 | 丰满少妇一级 | 欧美日韩在线观看不卡 | 91在线亚洲 | 天天操天天草 | av在线免费网 | 六月丁香在线视频 | 久久精品视频在线看 | 伊人成人久久 | 国产日韩视频在线 | 国产精品久久久久久欧美 | 成人精品福利 | 992tv在线观看网站 | 午夜精品久久久久久久99婷婷 | 国产日韩一区在线 | www.天天射.com| 国语黄色片 | 缴情综合网五月天 | 亚洲 欧美 国产 va在线影院 | 成片人卡1卡2卡3手机免费看 | 亚洲免费在线看 | 欧美日本国产在线观看 | 天天干天天射天天爽 | 久久天天操 | 国产精品女人久久久 | 亚洲激情中文 | 国产黄色在线 | 亚洲午夜久久久久久久久电影网 | 久久久久在线视频 | 国产精品12345 | 91视频成人免费 | aaa日本高清在线播放免费观看 | 亚洲激情精品 | aaa免费毛片 | 国产不卡网站 | 欧美日韩aa | 中文字幕 在线 一 二 | 好看av在线| 嫩草av影院 | 九九视频免费在线观看 | 日韩偷拍精品 | 亚洲成av人电影 | 欧美网站黄色 | 久久乱码卡一卡2卡三卡四 五月婷婷久 | 日本丶国产丶欧美色综合 | 亚洲人成在线电影 | 碰超在线97人人 | 涩涩网站在线播放 | 激情片av | 久久影视精品 | 91一区二区三区在线观看 | 91精品国产欧美一区二区成人 | 欧美一区二区三区免费看 | 成人一区二区在线观看 | 黄色av免费在线 | 91av亚洲| 97精品免费视频 | 亚洲一区二区三区毛片 | 91麻豆精品国产午夜天堂 | 日日干夜夜草 | 久久久99精品免费观看 | 中文字幕激情 | 色天堂在线视频 | 欧美日韩中文字幕综合视频 | 99在线视频免费观看 | 免费人做人爱www的视 | 美女黄色网在线播放 | 国产精品免费在线 | 美女免费视频一区二区 | 九九精品视频在线观看 | 久久精品2 | 中文字幕综合在线 | av成人黄色 | 美女网站在线 | 日韩在线观看第一页 | 黄色三级久久 | 99国产成+人+综合+亚洲 欧美 | 黄色片视频免费 | 麻豆久久久| 欧美在线视频一区二区三区 | 国产亚洲婷婷免费 | 国产黄色a | 久久精品国产精品亚洲精品 | 国产毛片久久久 | 狠狠综合网| av大全在线播放 | 国产精品永久免费 | 夜添久久精品亚洲国产精品 | 亚洲免费视频在线观看 | 色在线免费视频 | 91爱爱视频 | 99综合电影在线视频 | 99视频免费播放 | 久久精品91久久久久久再现 | 中文字幕刺激在线 | 国精产品一二三线999 | 欧美精品一区二区在线观看 | 综合色亚洲 | 亚洲精品系列 | 欧美日韩视频在线观看一区二区 | 精品久久久久久综合 | 国产三级国产精品国产专区50 | 色播六月天 | 激情深爱.com | 日韩在线欧美在线 | 天天干天天干天天干天天干天天干天天干 | 三级av在线免费观看 | 国产三级国产精品国产专区50 | 国产在线观看二区 | 亚洲撸撸 | 国产成人333kkk | 精品中文字幕视频 | 日韩av专区 | 欧美性猛片 | 在线日韩中文 | 麻豆影视网站 | 久久视屏网 | 一区二区三区免费播放 | 亚洲狠狠丁香婷婷综合久久久 | 欧美一区二区三区在线看 | 欧美成人h版电影 | 五月天中文在线 | 久久国产精品色av免费看 | 91丨九色丨首页 | 久久久久久久久久电影 | 亚洲激情p | 久草网站 | 黄色app网站在线观看 | 国产精品手机在线播放 | 国产成人久久精品一区二区三区 | 69精品人人人人 | 99精品欧美一区二区蜜桃免费 | 国产精品video爽爽爽爽 | 一级黄色免费 | 五月天中文在线 | 在线中文字幕一区二区 | 69久久久 | 天天射天天操天天干 | 国产电影黄色av | 日韩aⅴ视频 | 丁香婷婷激情国产高清秒播 | 国产精品亚洲人在线观看 | 国产黄色片在线 | 又爽又黄又无遮挡网站动态图 | 大荫蒂欧美视频另类xxxx | 五月综合网站 | 久久精品香蕉视频 | 人人射 | 天天操天天怕 | 日韩激情综合 | 精品在线亚洲视频 | 国产精品18p | 精品国产一区二区三区久久影院 | 日韩电影在线视频 | 少妇精品久久久一区二区免费 | 国产 日韩 欧美 中文 在线播放 | 日韩网站在线观看 | 久久综合狠狠综合 | 91激情视频在线观看 | 中文字幕一区二区三区视频 | av大片网址| 麻豆一级视频 | 日本黄色免费电影网站 | 99久久这里只有精品 | 久久99精品久久只有精品 | 久久成人国产 | 亚洲视频在线观看免费 | 福利区在线观看 | 国产成人精品不卡 | 天天躁天天狠天天透 | 麻豆免费视频观看 | 久久免费国产电影 | 在线a亚洲视频播放在线观看 | 国产视频精品久久 | 日韩国产欧美在线播放 | 欧美午夜剧场 | 中文字幕乱码视频 | 中文在线字幕免费观 | 国产一区免费在线观看 | 91亚色视频 | 免费网站v | 久久久久久久久毛片精品 | 97视频入口免费观看 | 午夜av色 | 亚洲国产99| 国产高清在线免费视频 | 久久草网站 | 精品国产伦一区二区三区 | 激情欧美国产 | 五月天色婷婷丁香 | 精品久久一区二区 | 在线色资源 | 日韩精品久久久久久久电影99爱 | 狠狠婷婷 | 亚洲黄色免费 | 一区 二区电影免费在线观看 | 91视频一8mav | 在线看片成人 | 国产精品一区二区三区观看 | 日韩在线观看视频在线 | 欧美日本不卡高清 | 国产精品6 | 国产黑丝一区二区三区 | 国产精品av免费观看 | 成 人 免费 黄 色 视频 | 亚洲欧洲美洲av | 丁香五婷 | 日韩欧美精选 | 久久久久久免费 | 国产精品99久久久久久有的能看 | 欧美电影在线观看 | 在线成人国产 | 黄色一级大片免费看 | 久草精品免费 | 美女视频又黄又免费 | 久青草国产在线 | 色网站在线 | 国产精品1区2区3区在线观看 | 国内外成人免费在线视频 | 欧美韩日精品 | 日韩精品一区二区三区高清免费 | 婷婷激情五月 | av福利免费| 91中文字幕在线视频 | 国产伦精品一区二区三区高清 | 欧美日韩国产综合一区二区 | 精品视频免费 | 亚洲精品99久久久久中文字幕 | 国产精品自在线拍国产 | 天天色天天搞 | 久久久久久国产精品亚洲78 | 中国一级片免费看 | 国产亚洲综合性久久久影院 | 香蕉在线视频观看 | 一区二区三区免费播放 | 国产亚洲欧洲 | 久久另类小说 | 在线成人短视频 | 欧美日韩国产一二三区 | 久久五月婷婷丁香社区 | 欧美日韩在线播放 | 精品欧美乱码久久久久久 | 午夜精品一区二区三区在线播放 | 日日弄天天弄美女bbbb | 色综合久久久久久久久五月 | 天天干天天拍天天操天天拍 | 热久久影视 | 偷拍精品一区二区三区 | 91香蕉视频黄色 | 五月婷婷国产 | 美国人与动物xxxx | 五月天狠狠操 | 黄色91免费观看 | 精品一二 | 久久久久亚洲精品男人的天堂 | 国产精品亚洲片夜色在线 | 日韩美av在线 | 三日本三级少妇三级99 | 99视频精品在线 | 91插插影库 | 超碰97人人在线 | 欧美一二区视频 | 97视频免费在线观看 | 在线观看日韩一区 | 中文字幕一区二区三区四区 | 人人爱人人添 | 日韩免费一级a毛片在线播放一级 | 天天做综合网 | 国产精品久久久久久久久久三级 | 国产精品观看视频 | 中文资源在线观看 | 久久色在线播放 | 波多野结衣一区二区三区中文字幕 | 97手机电影网| 欧美日韩综合在线观看 | 精品国产一二区 | 欧美韩国日本在线 | 黄色成人在线 | 天天干天天做 | 久久伦理电影网 | 精品999国产 | 亚洲国产最新 | 精品欧美小视频在线观看 | 婷婷视频在线播放 | 亚洲一区精品人人爽人人躁 | 丁香视频在线观看 | 操操爽 | a黄色一级| 91精品国产自产老师啪 | 久久视频精品在线观看 | 日韩在线视频在线观看 | www操操操| 国产高清一区二区 | 国产视频欧美视频 | 青青网视频 | av成人动漫 | 怡红院久久| 一区二区三区不卡在线 | 91成人蝌蚪| 能在线观看的日韩av | 丰满少妇在线观看网站 | 色偷偷97| 中文字幕在线观看视频网站 | 国产精品美女久久久久久免费 | 久草视频在线新免费 | 亚洲综合最新在线 | 91片网| 91久久黄色 | 国产日韩欧美在线 | 三级动态视频在线观看 | 欧美一区二区三区不卡 | 免费观看一级一片 | 99热精品在线观看 | 在线 视频 一区二区 | 中文字幕在线观看免费高清完整版 | 婷婷爱五月天 | 九九热在线播放 | 在线观看完整版 | 国产精品mv在线观看 | 国产a级免费 | 国产在线精品视频 | va视频在线观看 | 国产精品一区二区三区免费看 | 亚洲国产一区av | 不卡的一区二区三区 | 欧美一级裸体视频 | 亚州精品国产 | 国产免费久久av | 人人草网站 | 欧美电影黄色 | 四虎永久免费 | 久久久精品视频网站 | 69精品视频 | 99草在线视频 | av一级片网站 | 亚洲国产精品99久久久久久久久 | 亚洲区视频在线观看 | 97av.com| 午夜精品久久久久久久99水蜜桃 | 在线免费观看一区二区三区 | 97在线视频免费播放 | 超碰97av在线 | www毛片com| 最新午夜电影 | av日韩不卡 | 天天干,天天射,天天操,天天摸 | 欧美久久成人 | 久久精品国产一区二区电影 | 久草在线观看资源 | av三级在线免费观看 | 日本天天操 | 免费久久99精品国产 | 色欧美视频 | 久久精品一区 | 国产成人精品免高潮在线观看 | 在线免费观看视频一区二区三区 | 中文字幕色在线视频 | 国产精品 日韩 欧美 | 日本久久久久 | 91秒拍国产福利一区 | 在线观看精品 | 碰天天操天天 | 亚洲高清av | 自拍超碰在线 | 免费在线观看的av网站 | 天天干天天操天天做 | 国产精品美女久久久 | 日韩免费视频观看 | 成人午夜av电影 | 国产在线1区 | 久久综合成人网 | 日韩成人邪恶影片 | 蜜桃视频日韩 | 午夜精品视频一区 | 99热亚洲精品 | 国产在线黄| 成人夜晚看av | 久久婷婷丁香 | 国产高清av免费在线观看 | 伊人伊成久久人综合网站 | 我要色综合天天 | 天天操天天干天天操天天干 | 欧美日韩国产精品一区 | 97日日碰人人模人人澡分享吧 | 亚洲国产精品资源 | 91私密视频 | 久久久久久免费 | 国产视频日韩 | 狠狠色狠狠色合久久伊人 | 肉色欧美久久久久久久免费看 | 国产999精品久久久久久麻豆 | 怡红院av久久久久久久 | 国产成人精品综合 | 欧美一级片 | 亚洲视屏在线播放 | 在线播放国产一区二区三区 | 国产成人三级一区二区在线观看一 | 韩国av电影在线观看 | 色激情在线 | 视频99爱 | 国产精品久久久久久久久久ktv | 日韩亚洲在线视频 | 国产一级视频在线 | 久久视频中文字幕 | 色在线免费 | 久久伊人综合 | 久久久久久久99精品免费观看 | 日本久久精品视频 | 91九色网站 | 美女在线免费视频 | 日韩电影一区二区在线观看 | 国产福利一区二区三区视频 | 免费a级大片 | 婷婷六月天在线 | 91精品国产自产在线观看永久 | 亚洲观看黄色网 | 在线播放精品一区二区三区 | 成人免费亚洲 | 国产精品wwwwww | a视频在线观看 | 九九有精品 | 色视频网址 | 狠狠躁夜夜躁人人爽视频 | 国产在线综合视频 | 玖玖视频免费在线 | 91看片麻豆 | 天天干天天天天 | 97av在线| 日韩高清一区二区 | 97在线视频观看 | 亚洲免费不卡 | 国产黄色免费在线观看 | av综合 日韩| 久久久国产精品人人片99精片欧美一 | 欧美日韩性视频在线 | 天天综合入口 | 99热这里只有精品免费 | 亚洲精品乱码久久久久久蜜桃91 | 国产在线观看a | 久久久久亚洲精品 | 一区二区观看 | 日韩综合视频在线观看 | 精品久久久久久综合日本 | 九九热中文字幕 | 超碰99人人 | 日日爽夜夜爽 | 日韩区欠美精品av视频 | 日三级在线 | 天天草综合网 | 午夜成人免费电影 | 国产乱码精品一区二区蜜臀 | 欧美精品久久久久性色 | 狠狠88综合久久久久综合网 | 看国产黄色大片 | www.久久久com| 视频一区二区国产 | 亚洲激情在线观看 | 中文字幕久久久精品 | 97超碰网| 国产在线超碰 | 精品久久美女 | 91精品免费看 | 国产精品日韩欧美一区二区 | 97操操操 | 九九热免费视频在线观看 | 欧美精品中文字幕亚洲专区 | 在线观看色网 | 狠狠综合久久 | 免费久草视频 | 精品一二三区 | 亚州av网站| 99在线精品视频观看 | 久久久国产一区二区三区 | 欧美午夜久久久 | 国产福利免费在线观看 | 日本精品久久久久中文字幕 | 欧美精品久 | 国产视频一区在线 | 亚洲四虎 | 国产免码va在线观看免费 | 免费国产一区二区视频 | 亚洲永久国产精品 | 国产无限资源在线观看 | 麻豆视频国产精品 | 午夜视频在线观看网站 | 99热超碰在线 | 欧美精品久久久久久久久久白贞 | 欧美精品久久久久a | 精品九九九九 | 亚洲综合欧美精品电影 | 伊人五月 | 国产精品久久久久影院 | 欧美性直播 | 国产精品日韩久久久久 | 国产亚洲在| 国产高清中文字幕 | 精品一区二区久久久久久久网站 | 日韩激情久久 | 欧美日韩一区二区三区视频 | 国产精品成人av久久 | 亚洲精品美女免费 | 欧美激情片在线观看 | 国产男女爽爽爽免费视频 | 欧美一级在线观看视频 | 激情综合狠狠 | 特级西西444www大胆高清无视频 | 91看片麻豆 | 综合网在线视频 | 久久爱www.| 91免费高清视频 | 免费色视频网址 | 五月天激情婷婷 | 亚洲精品国产精品久久99 | 日韩欧美电影网 | 亚洲精品视频在线播放 | 国产亚洲精品久久久久久久久久久久 | 麻豆综合网 | 亚洲欧美视频一区二区三区 | 亚洲精品一区二区18漫画 | 99热这里只有精品在线观看 | 99热精品国产一区二区在线观看 | 涩涩资源网 | 97色在线观看免费视频 | 国产资源av | 婷婷六月天在线 | 日本视频久久久 | 91精品欧美一区二区三区 | zzijzzij日本成熟少妇 | 不卡的av在线 | 精品v亚洲v欧美v高清v | 成人国产精品久久久春色 | 中文字幕第一 | 欧美精品久久久久性色 | 亚洲精品在线视频观看 | 亚洲高清国产视频 | 九九爱免费视频在线观看 | 国产一区二区三区高清播放 | 国产原创在线 | 日韩特级片 | av资源免费在线观看 | 亚洲精品一区中文字幕乱码 | 精品国产自 | 国产成人精品久久亚洲高清不卡 | 亚洲一级电影 | 亚洲 综合 国产 精品 | 悠悠av资源片 | 欧美日韩国产在线观看 | 国产中文字幕精品 | 中文字幕在线观看播放 | 狠狠躁日日躁狂躁夜夜躁 | 亚洲国内精品在线 | 久草在线免费资源 | 欧美一区二区精美视频 | 成人小视频在线播放 | 伊人狠狠色 | 久久成人亚洲欧美电影 | 国产亚洲精品久久久久久无几年桃 | h视频在线看 | 久久综合九色欧美综合狠狠 | 国产成人久久av免费高清密臂 | 超碰在线最新地址 | 麻豆视频国产在线观看 | 国产在线最新 | 欧美另类xxx | 国产成人精品电影久久久 | 欧美精品v国产精品 | 麻豆免费观看视频 | 天天操天天怕 | 亚洲最大成人免费网站 | 日韩三级精品 | 久青草国产在线 | 国产精品免费不卡 | 久久国产精品免费视频 | aa级黄色大片 | 狠狠色网 | 天天在线视频色 | 人交video另类hd | 国产精品久久久777 成人手机在线视频 | 天天操天 | 国产理论免费 | 久久久久久在线观看 | 在线亚洲小视频 | 欧美在线观看视频一区二区三区 | 美女亚洲精品 | 99热国产在线中文 | 最新久久久 | 在线观看一区视频 | 午夜视频99 | 中文字幕在线观看你懂的 | 国产成人一级 | 中国一级片视频 | 久久精品美女 | 日韩经典一区二区三区 | 国内精品视频在线播放 | 日韩精品一区二区免费视频 | 91丨九色丨首页 | 国产一级电影免费观看 | 欧美激情精品久久久久 | 国产伦理精品一区二区 | 久久免费视频一区 | 亚洲电影成人 | 国产一区二区三区免费在线观看 | 久久久久久久久久亚洲精品 | 国产精品v欧美精品v日韩 | av综合网址| 欧美激情第一页xxx 午夜性福利 | 中文字幕丝袜制服 | 国产精品第7页 | 亚洲国产高清视频 | 国产区欧美 | 一区二区三区高清不卡 | 中文字幕色婷婷在线视频 | 亚洲国产精彩中文乱码av | 国产一级二级在线播放 | 欧美另类老妇 | 99精品国产99久久久久久福利 | 精品美女久久久久久免费 | 中文字幕精品在线 | 亚洲综合干 | 久久综合天天 | 国产原创在线 | 91网免费观看| 天天激情综合 | 狠狠五月婷婷 | 久久久国产精品成人免费 | 国产精品原创av片国产免费 | 亚洲成人av在线播放 | 久久综合色综合88 | 看毛片网站 | 成人久久视频 | 国产原厂视频在线观看 | 香蕉在线影院 | 亚洲精品久久久久久久不卡四虎 | 欧洲视频一区 | 999精品在线| 久操视频在线播放 | 免费av片在线 | 蜜臀av网站 | 一级电影免费在线观看 | 久久免费电影 | 成人理论在线观看 | 黄色的网站在线 | 成人av网页 | 四虎国产精品免费观看视频优播 | 国产精品一区二区三区在线看 | 免费成人黄色片 | 麻豆手机在线 | 国产三级香港三韩国三级 | 成人午夜在线电影 | 激情综合网色播五月 | 一级一级一片免费 | 久久黄色免费 | 人人爽人人澡 | 久久a热6| 日本久草电影 | 五月激情五月激情 | 综合婷婷 | 亚洲久草视频 | 免费高清在线视频一区· | 玖玖视频在线 | 午夜久久网 | 91九色国产在线 | 精品不卡av | av激情五月 | 天天操夜夜操天天射 | 婷婷四房综合激情五月 | 精品一区二区三区在线播放 | 国产一区二区手机在线观看 | 成人黄色毛片视频 | 天天爽夜夜爽人人爽曰av | av中文电影 | 色婷婷精品| 欧美综合国产 | 色狠狠一区二区 |