版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
第一章1、什么是數(shù)字圖像?答:數(shù)字圖像(DigitalImage)是由模擬圖像數(shù)字化得到的、以像素為基本元素的、可以用數(shù)字計(jì)算機(jī)或數(shù)字電路存儲(chǔ)和處理的圖像。數(shù)字圖像的空間坐標(biāo)和明暗程度都是離散的、不連續(xù)的,由數(shù)組或矩陣來表示。圖像中每個(gè)基本單元叫做圖像的元素,簡稱像素(Pixel)。2、簡述彩色圖像、灰度圖像、二值圖像三者之間的關(guān)系與區(qū)別?答:二值圖像的每個(gè)像素只有黑、白兩種顏色。在二值圖像中,像素只有0和1兩種取值,一般用0來表示黑色,用1來表示白色。在二值圖像中進(jìn)一步加入許多介于黑色和白色之間的顏色深度,就構(gòu)成了灰度圖像?;叶葓D像中不包含彩色信,標(biāo)準(zhǔn)灰度圖像中每個(gè)像素的灰度值是0-255之間的一個(gè)值,灰度級(jí)數(shù)為256級(jí)。彩色圖像是根據(jù)三原色成像原理來實(shí)現(xiàn)對(duì)自然界中的色彩描述的。紅、綠、藍(lán)這三種基色的灰度分別用256級(jí)表示,三基色之間不同的灰度組合可以形成不同的顏色。區(qū)別:①圖像不同:二值圖像在圖像中,灰度等級(jí)只有兩種?;叶葓D像與黑白圖像不同,在計(jì)算機(jī)圖像領(lǐng)域中黑白圖像只有黑白兩種顏色,灰度圖像在黑色與白色之間還有許多級(jí)的顏色深度;②得到過程不同:灰度圖像通常是在單個(gè)電磁波頻譜(如可見光)內(nèi)測量每個(gè)像素的亮度得到的。二值圖像中所有的像素只能從0和1這兩個(gè)值中??;③應(yīng)用領(lǐng)域不同:二值化圖像的應(yīng)用領(lǐng)域在車牌識(shí)別,圖像的字符提取。彩色圖像則不是;④占用空間不同:二值圖像最小,其次是灰度圖像,彩色圖像最多。3、數(shù)字圖像處理包括哪些內(nèi)容?答:數(shù)字圖像處理的主要內(nèi)容包括圖像增強(qiáng)、圖像復(fù)原、圖像分割、圖像特征提取、圖像匹配和圖像識(shí)別等。4、數(shù)字圖像處理的基本步驟有哪些?答:數(shù)字圖像處理一般按照圖像獲取、圖像預(yù)處理、圖像分割、圖像特征提取、圖像分類與識(shí)別的步驟進(jìn)行。5、列舉一個(gè)與圖像處理技術(shù)相關(guān)的工程應(yīng)用案例,分析數(shù)字圖像處理技術(shù)在工程案例中所起的作用。答:例如,在航空航天中,“嫦娥三號(hào)”月球探測器以及“祝融號(hào)”火星車都攜帶多種相機(jī),拍攝了大量的蘊(yùn)含許多科學(xué)信息的照片,通過數(shù)字圖像處理技術(shù)人們能更好的從圖像中獲取信息,能夠進(jìn)一步認(rèn)識(shí)宇宙,大大促進(jìn)航空航天的發(fā)展。第二章1、當(dāng)被檢測區(qū)域背景為黑色,前景為紅色和藍(lán)色組成的目標(biāo)時(shí),想要突出紅色目標(biāo)的話,選用什么顏色的光源更佳?答:選用紅色光源。背景為黑色,前景為紅色和藍(lán)色組成的目標(biāo),根據(jù)補(bǔ)色率知一種色光照射到其補(bǔ)色物體上被吸收,即使用與被測物體同色系的光會(huì)使圖像變亮,紅色光使紅色物體更亮,使藍(lán)色物體更暗。2、光源的照明方式有哪些?各種照明方式適用于什么檢測場景?答:光源的照明方式分為前景光照射和背景光照射。前景光是指照明光源位于被測物體的前方,利于表現(xiàn)物體的表面細(xì)節(jié)特征,可用于各種表面檢測。一般情況下可分為垂直照射、高角度照射、低角度照射和多角度照射。背景光是利用背景光創(chuàng)造一個(gè)明亮的背景,而不透明或半透明的目標(biāo)形成暗區(qū),反差強(qiáng)烈,更適合檢查底片中缺陷和測量外形尺寸。3、鏡頭的主要參數(shù)有哪些?答:鏡頭的主要參數(shù):①焦距(FocalLength):從鏡頭的中心點(diǎn)到焦平面上所形成的清晰影像之間的距離;②視場角(FieldofView):視場是整個(gè)系統(tǒng)能夠觀察的物體的尺寸范圍,進(jìn)一步可以分為水平視場和垂直視場,也就是芯片上能夠成像對(duì)應(yīng)的實(shí)際物體大?。‵OV也可表示成鏡頭對(duì)視野的高度和寬度的張角);③光圈(Aperture):機(jī)械裝置,是一個(gè)通過控制鏡頭光孔的大小來控制光線透過鏡頭,進(jìn)入機(jī)身內(nèi)感光面的光量的裝置,常在鏡頭內(nèi);④景深(Depthoffield):指在攝影機(jī)鏡頭前沿能夠取得清晰圖像的成像所測定的被攝物體前后距離范圍;⑤分辨率(Resolution):圖像采集系統(tǒng)能夠分辨的最小物體的距離;⑥畸變(Distortion):一條直線經(jīng)過鏡頭拍攝后,變成彎曲的現(xiàn)象,稱為畸變像差?;兊漠a(chǎn)生源于鏡頭的光學(xué)結(jié)構(gòu)、成像特性使然?;兛梢钥醋魇窍衩嫔喜煌植康姆糯舐什灰恢乱鸬模且环N放大率像差;⑦對(duì)應(yīng)最大CCD尺寸(CorrespondingmaximumCCDsize):CCD尺寸說的是相機(jī)CCD靶面的大小。鏡頭可支持的最大CCD尺寸應(yīng)大于或等于選配相機(jī)CCD芯片尺寸,才能使CCD發(fā)揮最大的效用。4、在拍攝高速運(yùn)動(dòng)物體時(shí),相機(jī)和鏡頭的選擇及參數(shù)設(shè)置應(yīng)注意些什么?答:在拍攝高速運(yùn)動(dòng)的物體時(shí),考慮相機(jī)和鏡頭的搭配選型,鏡頭選擇應(yīng)當(dāng)根據(jù)光敏器件的尺寸(與鏡頭匹配的傳感器尺寸必須小于或等于鏡頭尺寸)、焦距(即視野稍大于觀察范圍的鏡頭)等參數(shù),需要景深與光線環(huán)境匹配,光線充足。以分辨率來選相機(jī)時(shí)考慮需要觀察或測量的物體的精度,以幀率挑選相機(jī)時(shí),需要挑選比受測物移動(dòng)速度稍高一點(diǎn)的幀速率,但也無須超過太多。一般來說,分辨率越高,則幀速率越低。一般來說,黑白相機(jī)的精度會(huì)比彩色相機(jī)來得高,噪聲較低,若不考慮顏色差別,黑白相機(jī)拍攝的圖像準(zhǔn)確度以及細(xì)節(jié)呈現(xiàn)往往更好。5、當(dāng)被測區(qū)域大小為8mm×6mm,檢測精度要求高于0.005mm時(shí),應(yīng)如何選擇相機(jī)的分辨率?答:被測區(qū)域是8mm×6mm的方形區(qū)域,系統(tǒng)檢測精度要求為0.005mm,則相機(jī)靶面像素?cái)?shù)要大于(8/0.005)×(6/0.005)=1600×1200。(為增加系統(tǒng)的穩(wěn)定性,不會(huì)只用一個(gè)像素單位對(duì)應(yīng)一個(gè)測量/觀察精度值,一般可以選擇倍數(shù)4或更高)第三章1、什么是均勻采樣和非均勻采樣?答:在對(duì)圖像進(jìn)行采樣的過程中,若在(x,y)方向上均進(jìn)行等間距的采樣,則稱為均勻采樣;反之,則稱為非均勻采樣。2、什么是線性量化和非線性量化?答:若將灰度值區(qū)間分為K個(gè)等間距的子區(qū)間,則稱為線性量化;與線性量化的等間隔劃分灰度級(jí)區(qū)間相反,若將表示數(shù)字圖像的灰度級(jí)范圍分為不等間隔的子區(qū)間,則稱為非線性量化。3、什么是像素的4鄰域、8鄰域和對(duì)角鄰域?答:像素的4鄰域定義為其上、下、左、右的4個(gè)像素;與四鄰域類似,當(dāng)前像素上、下、左、右4個(gè)方向,加上左上、左下、右上和右下4個(gè)沿對(duì)角線方向的相鄰像素,稱為當(dāng)前像素p的8鄰域;其中,左上、左下、右上和右下4個(gè)相鄰像素定義為對(duì)角鄰域。4、什么是圖像的灰度直方圖?灰度直方圖有哪些性質(zhì)和作用?答:灰度直方圖是基于圖像灰度值和像素統(tǒng)計(jì)分布的形象表示,它概括地表示了一幅圖像的灰度級(jí)信息。在數(shù)字圖像處理中灰度直方圖是灰度級(jí)的函數(shù),它描述了圖像中具有該灰度級(jí)的像素的個(gè)數(shù),其橫坐標(biāo)是灰度級(jí),縱坐標(biāo)是該灰度出現(xiàn)的頻率。直方圖具有以下性質(zhì):(1)直方圖是一幅圖像中各像素灰度值出現(xiàn)次數(shù)或頻率的統(tǒng)計(jì)結(jié)果,它只反映該圖像中不同灰度值出現(xiàn)的頻率,而不能反映某一灰度值像素所在的位置信息。即直方圖僅包含了該圖像中某一灰度值的像素出現(xiàn)的概率,而丟失了其所在位置的信息。(2)任一幅圖像,都能唯一的確定一個(gè)與之對(duì)應(yīng)的直方圖。但不同的圖像,可能有相同的直方圖。也就是說,圖像與直方圖之間是一種多對(duì)一的映射關(guān)系。(3)由于直方圖是對(duì)具有相同灰度值的像素統(tǒng)計(jì)計(jì)數(shù)得到的,若某一幅圖像由若干子圖像區(qū)域構(gòu)成,那么各子區(qū)域直方圖之和就等于原圖像的直方圖。直方圖具有以下作用:(1)數(shù)字化參數(shù)(2)選擇邊界閾值(3)計(jì)算綜合光密度5、常用的數(shù)字圖像的距離測度有哪些?各有什么特點(diǎn)?答:歐氏距離是一個(gè)通常采用的距離定義,指在m維空間中兩個(gè)點(diǎn)之間的真實(shí)距離,或者向量的自然長度。余弦相似度是通過計(jì)算兩個(gè)向量的夾角余弦值來評(píng)估他們的相似度。漢明距離是兩個(gè)向量之間不同值的個(gè)數(shù)6、圖像的質(zhì)量如何評(píng)價(jià)?答:圖像質(zhì)量評(píng)價(jià)可分為主觀評(píng)價(jià)和客觀評(píng)價(jià)兩大類方法。主觀評(píng)價(jià)法主要憑借評(píng)價(jià)人員的主觀感知來評(píng)價(jià)圖像質(zhì)量;客觀評(píng)價(jià)法依據(jù)評(píng)價(jià)的數(shù)學(xué)模型給出量化指標(biāo),模擬人類視覺系統(tǒng)感知機(jī)制,衡量圖像質(zhì)量。7、圖像間的加、減、乘、除法各有什么用處?答:圖像加法運(yùn)算通常用于平均值降噪等多種場合。圖像相減常用于檢測變化及運(yùn)動(dòng)物體,還可用于消除圖像背景。圖像乘法運(yùn)算可用來遮住圖像的某些部分,其典型運(yùn)用是用于獲得掩膜區(qū)域的目標(biāo)圖像。圖像除法運(yùn)算的典型運(yùn)用是比值圖像處理。第四章1、簡述直方圖均衡化的基本原理。答:直方圖均衡化的基本思想是把原始圖的直方圖變換為均勻分布的形式,這樣就增加了像素灰度值的動(dòng)態(tài)范圍,從而可達(dá)到增強(qiáng)圖像整體對(duì)比度的效果。2、如何通過圖像灰度變換來提高圖像的對(duì)比度?答:通過對(duì)圖像進(jìn)行灰度變換可分為點(diǎn)運(yùn)算算法和鄰域增強(qiáng)算法。1)點(diǎn)運(yùn)算即對(duì)比度增強(qiáng)、對(duì)比度拉伸或灰度變換,是對(duì)圖像中的每一個(gè)點(diǎn)單獨(dú)地進(jìn)行處理,目的或使圖像成像均勻,或擴(kuò)大圖像動(dòng)態(tài)范圍,擴(kuò)展對(duì)比度。新圖像的每個(gè)像素點(diǎn)的灰度值僅由相應(yīng)輸入像點(diǎn)運(yùn)算,只是改變了每個(gè)點(diǎn)的灰度值,而沒有改變它們的空間關(guān)系。2)鄰域增強(qiáng)算法分為圖像平滑和銳化兩種。平滑一般用于消除圖像噪聲,但是也容易引起邊緣的模糊,常用算法有均值濾波、中值濾波;銳化的目的在于突出物體的邊緣輪廓,便于目標(biāo)識(shí)別,常用算法有梯度法、拉普拉斯算子、高通濾波、掩模匹配法、統(tǒng)計(jì)差值法等。3、編寫一個(gè)程序以實(shí)現(xiàn)如下功能:將一個(gè)灰度圖像與該灰度圖像進(jìn)行平移和旋轉(zhuǎn)(邊界全部填充為零),并顯示和比較這兩種操作帶來的不同圖像輸出效果。答:程序如下:I_0=imread("lena.bmp");%把圖像轉(zhuǎn)換成灰度圖像I_1=rgb2gray(I_0);imshow(I_0);title('原始RGB圖像')imshow(I_1);title('RGB圖像轉(zhuǎn)化為灰度圖像')%%平移Se=translate(strel(1),[2020]);img1=imdilate(I_1,Se);figure,imshow(img1);title('平移后的灰度圖像')%%旋轉(zhuǎn)img2=imrotate(I_1,45);figure,imshow(img2);title('旋轉(zhuǎn)45°后的灰度圖像')平移后的圖像,左邊和上邊的那部分是平移后空出來的部分。旋轉(zhuǎn)后的圖像是擴(kuò)大圖像范圍以顯示所有的圖像,4、圖像的旋轉(zhuǎn)變換對(duì)圖像的質(zhì)量有無影響?為什么?答:無影響;圖像的旋轉(zhuǎn)變換屬于圖像幾何變換,而幾何變換只改變像素所在的幾何位置,而不改變圖像的像素值。因此圖像的旋轉(zhuǎn)變換對(duì)圖像的質(zhì)量無影響。5、設(shè)原圖像如下所示,請用分別用最近鄰插值、雙線性插值和雙三次插值法將該圖像放大為大小的圖像。59605857615959576259605859616056答:最近鄰插值法:雙線性插值法:雙三次插值法:6、簡述中值濾波和均值濾波的基本原理。答:中值濾波是基于排序統(tǒng)計(jì)理論的一種能有效抑制噪聲的非線性信號(hào)處理技術(shù),其基本原理是把數(shù)字圖像或數(shù)字序列中一點(diǎn)的值用該點(diǎn)的一個(gè)鄰域中各點(diǎn)值的中值代替,讓周圍的像素值接近的真實(shí)值,從而消除孤立的噪聲點(diǎn)。均值濾波是典型的線性濾波算法,它是指在圖像上對(duì)目標(biāo)像素給一個(gè)模板,該模板包括了其周圍的臨近像素(以目標(biāo)像素為中心的周圍個(gè)像素,構(gòu)成一個(gè)濾波模板,即去掉目標(biāo)像素本身),再用模板中的全體像素的平均值來代替原來像素值。7、設(shè)原圖像如下圖所示,利用的模板求解該圖像的中值濾波和均值濾波結(jié)果。1111111115555551157555511558855115589551155555511555555111111111答:中值濾波結(jié)果:均值濾波結(jié)果:8、設(shè)給出圖像集合A和結(jié)構(gòu)元素B分別如下圖所示。(1)畫出用B膨脹A的結(jié)果圖。(2)畫出用B腐蝕A的結(jié)果圖。圖像集合A結(jié)構(gòu)元素B答:(1)膨脹結(jié)果為(2)腐蝕結(jié)果為第五章1.二維Fourier變換有哪些性質(zhì)?答:平移性,旋轉(zhuǎn)性,分配律,尺度性,相關(guān)性,周期性。2.二維Fourier變換的可分離性有何意義?答:二維離散傅立葉變換和反變換可用兩組一維離散傅立葉變換和反變換來完成,降低了計(jì)算的復(fù)雜度。3.什么是小波?小波函數(shù)是唯一的嗎?答:1、小區(qū)域的波,是一種特殊的、長度有限的、平均值為零的波形。2、不唯一,小波函數(shù)具有不唯一性。4.一個(gè)小波函數(shù)應(yīng)滿足哪些容許性條件?答:小波必須是振蕩的;小波的振幅只能在一個(gè)很短的一段區(qū)間上非零,即是局部化的。5.論述小波變換的基本性質(zhì)。答:小波變換是一種時(shí)頻域變換方法,它繼承和發(fā)展了短時(shí)傅立葉變換局部化的思想,同時(shí)又克服了窗口大小不隨頻率變化等缺點(diǎn),能夠提供一個(gè)隨頻率改變的“時(shí)間-頻率”窗口,是進(jìn)行信號(hào)時(shí)頻分析和處理的理想工具。它的主要特點(diǎn)是通過變換能夠充分突出問題某些方面的特征,能對(duì)時(shí)間(空間)頻率的局部化分析,通過伸縮平移運(yùn)算對(duì)信號(hào)(函數(shù))逐步進(jìn)行多尺度細(xì)化,最終達(dá)到高頻處時(shí)間細(xì)分,低頻處頻率細(xì)分,能自動(dòng)適應(yīng)時(shí)頻信號(hào)分析的要求,從而可聚焦到信號(hào)的任意細(xì)節(jié),解決了Fourier變換的困難問題,成為繼Fourier變換以來在科學(xué)方法上的重大突破。第六章1、假設(shè)我們有一個(gè)[0,1]上的均勻分布隨機(jī)數(shù)發(fā)生器U(0,1),請基于它構(gòu)造指數(shù)分布的隨機(jī)數(shù)發(fā)生器,推導(dǎo)出隨機(jī)數(shù)生成方程。若我們有一個(gè)標(biāo)準(zhǔn)正態(tài)分布的隨機(jī)數(shù)發(fā)生器N(0,1),請推導(dǎo)出對(duì)數(shù)正態(tài)分布的隨機(jī)數(shù)生成方程。答:(1)設(shè)指數(shù)分布的隨機(jī)變量為Y,概率密度PDF表示為:fy=λe-λy;y>0,λ>0,其中CDF由此可知:g指數(shù)分布CDF為Gy=因此Y=G-1(2)設(shè)標(biāo)準(zhǔn)正態(tài)分布的隨機(jī)變量為X,對(duì)數(shù)正態(tài)分布的隨機(jī)變量為Y,即是求Y=g(X)。設(shè)標(biāo)準(zhǔn)正態(tài)分布的概率密度函數(shù)f設(shè)對(duì)數(shù)分布的概率密度是hG-求導(dǎo)可得e繼而ggX2、考慮在x方向均勻加速導(dǎo)致的圖像模糊問題。如果圖像在t=0靜止,并用均勻加速加速,對(duì)于時(shí)間T,找出模糊函數(shù)H(u,v),可以假設(shè)快門開關(guān)時(shí)間忽略不計(jì)。答:gG=因此模糊函數(shù)為H3、已知一個(gè)退化系統(tǒng)的退化函數(shù)H(u,v),以及噪聲的均值與方差,請描述如何利用約束最小二乘方算法計(jì)算出原圖像的估計(jì)。答:F設(shè)定其殘差r=g-Hf應(yīng)有||給定γ一個(gè)初始值計(jì)算||若滿足||r||2-||η||2處于某一個(gè)精度范圍之內(nèi)則結(jié)束,否則更新γ大小,可以采用牛頓法.使用計(jì)算到的γ(?)式中計(jì)算通過傅里葉變換得到圖像在計(jì)算||r||2||4、一位考古學(xué)教授在做古羅馬時(shí)期貨幣流通方面的研究,最近認(rèn)識(shí)到4個(gè)羅馬硬幣對(duì)他的研究很關(guān)鍵,它們被列在倫敦大英博物館的館藏目錄中。遺憾的是,他到達(dá)那里后,被告知現(xiàn)在硬幣已經(jīng)被盜了,幸好博物館保存的一些照片來研究也是可靠的。但硬幣的照片模糊了,日期和其它小的標(biāo)記不能讀出。模糊的原因是攝取照片時(shí)照相機(jī)散焦。作為一名圖像處理專家,要求你幫助決定是否計(jì)算機(jī)處理能被用于復(fù)原圖像,幫助教授讀出這些標(biāo)記。且用于拍攝該圖像的原照相機(jī)一直能用,還有些同一時(shí)期其它有代表性的硬幣。提出解決這一問題的過程。答:本題基本思想是用相機(jī)和相似的硬幣去模型化相機(jī)的退化過程,然后用此結(jié)果進(jìn)行逆濾波。實(shí)現(xiàn)步驟如下:(1)選擇一枚同時(shí)期硬幣,盡可能在尺寸和內(nèi)容上與丟失的硬幣相同。選擇背景與照片背景的紋理、亮度盡可能相同;(2)設(shè)置博物館的相機(jī)在幾何結(jié)構(gòu)上盡可能使拍出的照片與丟失的硬幣照片相似。獲得幾張測試圖片;(3)對(duì)每個(gè)硬幣的圖像采用不同的鏡頭參數(shù)設(shè)置,獲得的圖像在交角,尺寸(照片上背景所占的區(qū)域大小等),照片的模糊程度等都盡可能逼近丟失硬幣的照片;(4)通過(3)中鏡頭參數(shù)設(shè)置使相應(yīng)丟失照片的退化過程模型化,對(duì)每一個(gè)這樣的設(shè)置,去除硬幣與背景,并用一個(gè)小的亮點(diǎn)在統(tǒng)一的背景去替代硬幣和其背景在相同的設(shè)置下進(jìn)行拍照或是其他的機(jī)械裝置去逼近一個(gè)光脈沖。數(shù)字化該脈沖,其傅里葉變換就是模糊過程的傳遞函數(shù);(5)數(shù)字化每一個(gè)丟失硬幣的模糊圖像,獲得其傅里葉變換。至此,我們獲得了每一個(gè)H(u,v)與G(u,v);(6)用逆濾波或維納濾波獲得F(u,v)的逼近;(7)求反傅里葉變換,重建圖像。第七章1、分別簡述利用雙峰法、最大閾值類間方差法和迭代選擇閾值法進(jìn)行圖像分割的原理。答:(1)在雙峰法進(jìn)行圖像分割中,認(rèn)為圖像由前景和背景(不同的灰度級(jí))兩部分組成,圖像的灰度分布曲線近似認(rèn)為是由兩個(gè)正態(tài)分布函數(shù)(μ1,σ12)和(μ2,σ22)疊加而成,圖像的直方圖將會(huì)出現(xiàn)兩個(gè)分離的峰值,雙峰之間的波谷處就是圖像的閾值所在。(2)在最大閾值類間方差法進(jìn)行圖像分割中,將直方圖在某一閾值處分割成兩組,當(dāng)被分成的兩組的方差為最大時(shí),得到閾值。因?yàn)榉讲钍腔叶确植季鶆蛐缘囊环N量度,方差值越大,說明構(gòu)成圖像的兩部分差別越大,當(dāng)部分目標(biāo)錯(cuò)分為背景或部分背景錯(cuò)分為目標(biāo)都會(huì)導(dǎo)致兩部分差別變小,因此使類間方差最大的分割意味著錯(cuò)分概率最小。(3)迭代選擇閾值法是對(duì)雙峰法的改進(jìn),他首先選擇一個(gè)近似的閾值T,將圖像分割成兩個(gè)部分,R1和R2,計(jì)算出區(qū)域R1和R2的均值μ1和μ2,再選擇新的閾值T=(μ1+μ2)/2;重復(fù)以上過程,直到μ1和μ2不在變化為止,此時(shí)T即為閾值。2、分析邊緣閾值對(duì)邊緣檢測結(jié)果的影響。答:在邊緣檢測中,一旦計(jì)算出導(dǎo)數(shù)之后,下一步要做的就是給出一個(gè)閾值來確定哪里是邊緣位置。閾值越低,能夠檢測出的邊線越多,結(jié)果也就越容易受到圖片噪聲的影響,并且越容易從圖像中挑出不相關(guān)的特性。與此相反,一個(gè)高的閾值將會(huì)遺失細(xì)的或者短的線段。一個(gè)常用的這種方法是帶有滯后作用的閾值選擇。這個(gè)方法使用不同的閾值去尋找邊緣。首先使用一個(gè)閾值上限去尋找邊線開始的地方。一旦找到了一個(gè)開始點(diǎn),我們在圖像上逐點(diǎn)跟蹤邊緣路徑,當(dāng)大于門檻下限時(shí)一直紀(jì)錄邊緣位置,直到數(shù)值小于下限之后才停止紀(jì)錄。這種方法假設(shè)邊緣是連續(xù)的界線,并且我們能夠跟蹤前面所看到的邊緣的模糊部分,而不會(huì)將圖像中的噪聲點(diǎn)標(biāo)記為邊緣。3、簡述Hough變換的基本原理。答:Hough變換的基本原理是利用點(diǎn)與線的對(duì)偶性,通過曲線表達(dá)形式把原圖像空間的曲線變?yōu)閰?shù)空間的一個(gè)點(diǎn),這樣就把原空間中的圖像檢測問題轉(zhuǎn)化為尋找參數(shù)空間中的點(diǎn)的峰值問題,即把檢測整體特性轉(zhuǎn)化為檢測局部特性。4、簡述區(qū)域生長法的基本思想。答:區(qū)域生長法的基本思想是將有相似性質(zhì)的像素點(diǎn)合并到一起。對(duì)每一個(gè)區(qū)域要先指定一個(gè)種子點(diǎn)作為生長的起點(diǎn),然后將種子點(diǎn)周圍領(lǐng)域的像素點(diǎn)和種子點(diǎn)進(jìn)行對(duì)比,將具有相似性質(zhì)的點(diǎn)合并起來繼續(xù)向外生長,直到?jīng)]有滿足條件的像素被包括進(jìn)來為止。這樣一個(gè)區(qū)域的生長就完成了。5、簡述分水嶺分割算法的基本步驟。答:(1)把梯度圖像中的所有像素按照灰度值進(jìn)行分類,并設(shè)定一個(gè)測地距離。
(2)找到灰度值最小的像素點(diǎn)(默認(rèn)標(biāo)記為灰度值最低點(diǎn)),讓threshold從最小值開始增長,這些點(diǎn)為起點(diǎn)。
(3)水平面在增長的過程中,會(huì)碰到周圍的鄰域像素到這些起始點(diǎn)(灰度值最低點(diǎn))的測地距離,如果小于設(shè)定閾值,則將這些像素淹沒,否則這些像素上設(shè)置大壩,這樣就對(duì)這些領(lǐng)域像素進(jìn)行分類。6、編寫一段程序,實(shí)現(xiàn)OTSU法對(duì)一幅灰度圖像進(jìn)行閾值分割。答:close;clear;clc;I=im2double(imread('ostu.png'));%變?yōu)殡p精度,即0-1[M,N]=size(I);%得到圖像行列像素number_all=M*N;%總像素值hui_all=0;%預(yù)設(shè)圖像總灰度值為0ICV_t=0;%預(yù)設(shè)最大方差為0%得到圖像總灰度值fori=1:Mforj=1:Nhui_all=hui_all+I(i,j);endendall_ave=hui_all*255/number_all;%圖像灰度值的總平均值%t為某個(gè)閾值,把原圖像分為A部分(每個(gè)像素值>=t)與B部分(每個(gè)像素值<t)fort=0:255%不斷試探最優(yōu)t值hui_A=0;%不斷重置A部分總灰度值hui_B=0;%不斷重置B部分總灰度值number_A=0;%不斷重置A部分總像素number_B=0;%不斷重置B部分總像素fori=1:M%遍歷原圖像每個(gè)像素的灰度值forj=1:Nif(I(i,j)*255>=t)%分割出灰度值》=t的像素number_A=number_A+1;%得到A部分總像素hui_A=hui_A+I(i,j);%得到A部分總灰度值elseif(I(i,j)*255<t)%分割出灰度值《t的像素number_B=number_B+1;%得到B部分總像素hui_B=hui_B+I(i,j);%得到B部分總灰度值endendendPA=number_A/number_all;%得到A部分像素總數(shù)與圖像總像素的比列PB=number_B/number_all;%得到B部分像素總數(shù)與圖像總像素的比列A_ave=hui_A*255/number_A;%得到A部分總灰度值與A部分總像素的比例B_ave=hui_B*255/number_B;%得到B部分總灰度值與B部分總像素的比例ICV=PA*((A_ave-all_ave)^2)+PB*((B_ave-all_ave)^2);%Otsu算法if(ICV>ICV_t)%不斷判斷,得到最大方差I(lǐng)CV_t=ICV;k=t;%得到最大方差的最優(yōu)閾值endendJ=im2bw(I,k/255);%轉(zhuǎn)換成二值圖,k為分割閾值subplot(121);imshow(I);subplot(122);imshow(J);k%顯示閾值運(yùn)行結(jié)果:7、編寫一段程序,實(shí)現(xiàn)Canny算法對(duì)一幅圖像進(jìn)行邊緣檢測。答:clearall;clc;I=imread('rice.png');%讀圖%I=rgb2gray(I);%灰度轉(zhuǎn)換I2=double(I);%轉(zhuǎn)化為雙精度[H,W]=size(I2);%獲取圖像大小%%Step1:使用高斯濾波平滑圖像B=[121;242;121];%高斯濾波系數(shù)B=1/16.*B;%高斯濾波模板方差=0.8A=conv2(I2,B,'same');%使用高斯模板進(jìn)行卷積.計(jì)算二維卷積,結(jié)果與原圖像大小相同%%Step2:計(jì)算梯度的幅值圖像,角度圖像.%Prewitt梯度模板dx=[-101;-101;-101];%x方向的梯度模板dy=[111;000;-1-1-1];%y方向的梯度模板gx=conv2(A,dx,'same');%獲取x方向的梯度圖像.使用梯度模板進(jìn)行二維卷積,結(jié)果與原圖像大小相同gy=conv2(A,dy,'same');%獲取y方向的梯度圖像.使用梯度模板進(jìn)行二維卷積,結(jié)果與原圖像大小相同M=sqrt((gx.^2)+(gy.^2));%獲取幅值圖像.大小與原圖像相等.(.^)表示數(shù)組乘方a=atan2(gy,gx);%獲取弧度,范圍:-pi~pia=a*180/pi;%將弧度轉(zhuǎn)換為角度,得到角度圖像,與原圖像大小相等.%%Step3:對(duì)幅值圖像進(jìn)行應(yīng)用非極大值抑制%首先將角度劃分成四個(gè)方向范圍:水平(0°)、-45°、垂直(90°)、+45°fori=1:Hforj=1:Wif((a(i,j)>=-22.5)&&(a(i,j)<0)||(a(i,j)>=0)&&(a(i,j)<22.5)||(a(i,j)<=-157.5)&&(a(i,j)>=-180)||(a(i,j)>=157.5)&&(a(i,j)<=180))a(i,j)=0;elseif((a(i,j)>=22.5)&&(a(i,j)<67.5)||(a(i,j)<=-112.5)&&(a(i,j)>-157.5))a(i,j)=-45;elseif((a(i,j)>=67.5)&&(a(i,j)<112.5)||(a(i,j)<=-67.5)&&(a(i,j)>-112.5))a(i,j)=90;elseif((a(i,j)>=112.5)&&(a(i,j)<157.5)||(a(i,j)<=-22.5)&&(a(i,j)>-67.5))a(i,j)=45;endendend%討論在3x3區(qū)域內(nèi)在該點(diǎn)梯度方向上進(jìn)行非極大值抑制.獲取非極大值抑制圖像Nms=zeros(H,W);%定義一個(gè)非極大值圖像fori=2:H-1forj=2:W-1if(a(i,j)==0&&M(i,j)==max([M(i,j),M(i,j+1),M(i,j-1)]))Nms(i,j)=M(i,j);elseif(a(i,j)==-45&&M(i,j)==max([M(i,j),M(i+1,j-1),M(i-1,j+1)]))Nms(i,j)=M(i,j);elseif(a(i,j)==90&&M(i,j)==max([M(i,j),M(i+1,j),M(i-1,j)]))Nms(i,j)=M(i,j);elseif(a(i,j)==45&&M(i,j)==max([M(i,j),M(i+1,j+1),M(i-1,j-1)]))Nms(i,j)=M(i,j);end;end;end;%%Step4:雙閾值檢測和連接邊緣DT=zeros(H,W);%定義一個(gè)雙閾值圖像TL=0.1*max(max(Nms));%低閾值TH=0.3*max(max(Nms));%高閾值fori=1:Hforj=1:Wif(Nms(i,j)<TL)DT(i,j)=0;elseif(Nms(i,j)>TH)DT(i,j)=1;%對(duì)TL<Nms(i,j)<TH使用8連通區(qū)域確定elseif(Nms(i+1,j)>TH||Nms(i-1,j)>TH||Nms(i,j+1)>TH||Nms(i,j-1)>TH||Nms(i-1,j-1)>TH||Nms(i-1,j+1)>TH||Nms(i+1,j+1)>TH||Nms(i+1,j-1)>TH)DT(i,j)=1;end;end;end;figure;subplot(121),imshow(I);title('原圖像');subplot(122),imshow(DT);%最終的邊緣檢測為二值圖像title('canny邊緣檢測后的圖像');運(yùn)行結(jié)果:第八章特征提取與特征選擇的區(qū)別是什么?答:特征選擇:特征選擇是對(duì)模式采用多維特征向量描述,各個(gè)特征對(duì)分類起的作用不一樣,在原特征空間中選取對(duì)分類有效的特征組成新的降維特征空間,以降低計(jì)算的復(fù)雜度,同時(shí)改進(jìn)分類效果。特征提?。禾卣魈崛∈菑哪J降哪撤N描述狀態(tài)提取出所需要的,用另一種形式表示的特征(如在圖像中抽取輪廓信息聲音信號(hào)中提取不同頻率的信息等)。聯(lián)系:特征選擇(featureselection)和特征提?。‵eatureextraction)都屬于降維(Dimensionreduction)。這兩者達(dá)到的效果是一樣的,就是試圖去減少特征數(shù)據(jù)集中的屬性(或者稱為特征)的數(shù)目。區(qū)別:特征提取的方法主要是通過屬性間的關(guān)系,如組合不同的屬性得到新的屬性,這樣就改變了原來的特征空間。特征選擇的方法是從原始特征數(shù)據(jù)集中選擇出子集,是一種包含的關(guān)系,沒有更改原始的特征空間。圖像特征主要分為哪幾類?各類中都包含哪些特征?答:圖像特征主要有:顏色特征、形狀特征、紋理特征和空間關(guān)系特征。顏色特征:顏色特征是一種全局特征,描述了圖像或圖像區(qū)域內(nèi)所對(duì)應(yīng)景物的表面性質(zhì)。一般顏色特征是基于像素點(diǎn)的特征,所有的像素點(diǎn)對(duì)該圖像或圖像區(qū)域都有貢獻(xiàn)。由于顏色對(duì)圖像的方向、大小等變化不敏感,不能很好地捕獲對(duì)象的局部特征。顏色特征描述可分為:顏色直方圖、顏色矩(顏色分布)、顏色集、顏色聚合向量和顏色相關(guān)圖。形狀特征:
形狀特征有兩類表示方法,一類是輪廓特征,一類是區(qū)域特征。圖像的輪廓特征主要針對(duì)物體的外邊界;而圖像的區(qū)域特征則關(guān)系到整個(gè)形狀區(qū)域。輪廓特征:輪廓是一系列相連的點(diǎn)組成的曲線,代表了物體的基本外形。其與邊緣的不同:輪廓是連續(xù)的,邊緣并不全都連續(xù);邊緣主要作為圖像的物體特征;而輪廓主要用來分析物體的形態(tài)(如周長和面積);邊緣包括輪廓。一般在二值圖像中尋找輪廓,尋找輪廓是針對(duì)白色物體,即物體是白色,而背景是黑色。紋理特征:紋理特征是一種全局特征,反映的是圖像中同質(zhì)現(xiàn)象的視覺特征,體現(xiàn)物體表面的具有緩慢變換或周期性變化的表面組織結(jié)構(gòu)排列屬性。圖像紋理通過像素及其周圍空間鄰域的灰度分布來表現(xiàn),即局部紋理信息。另外,局部紋理信息不同程度上的重復(fù)性,就是全局紋理信息。紋理特征可以分為四種類型:1)統(tǒng)計(jì)型紋理特征:統(tǒng)計(jì)型紋理特征中以GLCM(灰度共生矩陣)為主,它是建立在估計(jì)圖像的二階組合條件概率密度基礎(chǔ)上的一種方法。2)模型型紋理特征:假設(shè)紋理是以某種參數(shù)控制的分布模型方式形成的,從紋理圖像的實(shí)現(xiàn)來估計(jì)計(jì)算模型參數(shù),以參數(shù)為特征或采用某種策略進(jìn)行圖像分割,因此,模型參數(shù)的估計(jì)是這種方法的核心問題。模型型紋理特征提取方法以隨機(jī)場方法和分形方法為主。3)信號(hào)處理型紋理特征:建立在時(shí)域、頻域分析與多尺度分析基礎(chǔ)之上,對(duì)紋理圖像中某個(gè)區(qū)域內(nèi)實(shí)行某種變換之后,再提取保持相對(duì)平穩(wěn)的特征值,以此特征值作為特征表示區(qū)域內(nèi)的一致性以及區(qū)域間的相異性。4)結(jié)構(gòu)型紋理特征:基于“紋理基元”分析紋理特征,著力找到紋理基元,認(rèn)為紋理由許多紋理基元構(gòu)成,不同類型的紋理基元、不同的方向及數(shù)目,決定了紋理的表現(xiàn)形式??臻g關(guān)系特征可以分為兩類:一類方法首先對(duì)圖像進(jìn)行自動(dòng)分割,劃分出其中所含的對(duì)象或顏色區(qū)域,然后根據(jù)這些區(qū)域?qū)D像索引;另一類方法則簡單地將圖像均勻劃分若干規(guī)則子塊,對(duì)每個(gè)圖像子塊提取特征建立索引。灰度共生矩陣和灰度-梯度共生矩陣的定義?答:(1)灰度共生矩陣(GreyLevelCo-occurrence
Matrix)也叫做空間灰度級(jí)依賴矩陣(SGLDM),它是一種基于統(tǒng)計(jì)的紋理特征提取的方法。定義:考慮二階統(tǒng)計(jì)量,研究有空間關(guān)系的像素對(duì)表示即在給定空間距離d和方向θ時(shí),灰度以i為起始點(diǎn)(行),出現(xiàn)灰度級(jí)j(列)的概率(對(duì)頻數(shù)進(jìn)行歸一化,即除以所有頻數(shù)之和)。它構(gòu)成了灰度共生矩陣的元素?;叶?梯度共生矩陣(Gray-GradientCo-occurrenceMatrix,簡稱GGCM):紋理特征分析是用灰度和梯度的綜合信息提取紋理特征。將圖像的梯度信息加入到灰度共生矩陣中,使共生矩陣更能包含圖像的紋理基元及其排列信息。定義:灰度-梯度共生矩陣的元素h(i,j)定義為在歸一的灰度圖像F(i,j)歸一的梯度圖像G(i,j)中共同具有灰度值為i梯度值為j的總像點(diǎn)數(shù)?;诨叶裙采仃嚭突叶?梯度共生矩陣的圖像紋理特征有哪些?答:(1)基于灰度共生矩陣的圖像紋理特征有:能量、熵值、對(duì)比度、相關(guān)性、逆分差。(2)基于灰度-梯度共生矩陣的圖像紋理特征有:小梯度優(yōu)勢、大梯度優(yōu)勢、灰度分布不均勻性、梯度分布不均勻性、能量、灰度平均、梯度平均、灰度均方差、梯度均方差、相關(guān)、灰度熵、梯度熵、混合熵、慣性、逆差距。PCA方法基本步驟有哪些?PCA的主要目的是什么?答:PCA方法的步驟:①根據(jù)研究問題選取初始變量。②判斷是否合適進(jìn)行主成分分析(KMO和Bartlett檢驗(yàn))。前提條件:原始變量間存在相關(guān)性是進(jìn)行主成分分析的首要條件,否則原始變量無法進(jìn)行降維處理。KMO(Kaiser-Meyer-Olkin)檢驗(yàn):是用于比較變量間簡單相關(guān)系數(shù)和偏相關(guān)系數(shù)的指標(biāo)。KMO統(tǒng)計(jì)量是取值在0和1之間。KMO值越接近于1,意味著變量間的相關(guān)性越強(qiáng),原有變量越適合作主成分分析;KMO值越接近于0,意味著變量間的相關(guān)性越弱,原有變量越不適合作主成分分析。Bartlett球度檢驗(yàn):Bartlett球形檢驗(yàn)的假設(shè)是:H0:相關(guān)系數(shù)矩陣是單位矩陣(變量不相關(guān))。H1:相關(guān)系數(shù)矩陣不是單位矩陣(變量相關(guān))。巴特利特球度檢驗(yàn)的統(tǒng)計(jì)量是根據(jù)相關(guān)系數(shù)矩陣的行列式得到的,如果顯著性水平小于給定的α,那么應(yīng)該拒絕零假設(shè),即原始變量之間存在相關(guān)性,適合于做主成份分析;相反,不宜于做主成分分析。③對(duì)初始變量進(jìn)行標(biāo)準(zhǔn)化和同趨勢化,消除量綱影響。標(biāo)準(zhǔn)化的方法:max-min/z-score/。同趨勢化:指標(biāo)正向化。④根據(jù)處理后的數(shù)據(jù)矩陣求出相關(guān)系數(shù)矩陣。⑤求出協(xié)方差矩陣的特征根和特征向量。在統(tǒng)計(jì)學(xué)中,方差是用來度量單個(gè)隨機(jī)變量的離散程度,而協(xié)方差則一般用來刻畫兩個(gè)隨機(jī)變量的相似程度。協(xié)方差矩陣是對(duì)各變量離散程度和變量之間的相關(guān)程度的信息的反映。⑥確定主成分表達(dá)式,并確定主成分個(gè)數(shù),選取主成分⑦結(jié)合主成分對(duì)研究問題進(jìn)行分析PCA方法的目的:通過原來變量的線性組合來解釋原來變量的大部分信息,達(dá)到降維的目的,從而簡化問題的復(fù)雜性。利用分離判據(jù)進(jìn)行特征提取,解釋為什么要使判據(jù)最大?答:這樣可以使得特征維數(shù)減少到同等水平時(shí),其分類性能最佳,從而使特征維數(shù)及所使用特征是否對(duì)分類最有利。利用MATLAB分別進(jìn)行基于PCA和基于分離判據(jù)的特征選擇的編程練習(xí)。答:PCA:在此舉例一個(gè)數(shù)據(jù)data下面都是用此數(shù)據(jù)進(jìn)行做:在命令行輸入以下代碼:data=[1,-0.2,0.3,0.8,-0.5-0.2,1,0.6,-0.7,0.20.3,0.6,1,0.5,-0.30.8,-0.7,0.5,1,0.7-0.5,0.2,-0.3,0.7,1]進(jìn)行標(biāo)準(zhǔn)化z=zscore(data)計(jì)算相關(guān)系數(shù)矩陣C=corr(z,'type','Pearson')計(jì)算均值:mapping.mean=mean(data,1)%計(jì)算均值進(jìn)行中心化data=data-repmat(mapping.mean,[size(data,1)1])%去均值計(jì)算協(xié)方差陣:C=cov(data)%協(xié)方差矩陣求相關(guān)矩陣的特征值和相對(duì)應(yīng)的特征向量(在此以協(xié)方差陣為例)[M,lambda]=eig(C)%求C矩陣特征向量及特征值取出協(xié)方差陣所求的對(duì)角線上的特征值y=diag(lambda)%取出特征值矩陣中的特征值size(data,2)%讀取數(shù)據(jù)文件中的列數(shù)畫散點(diǎn)圖和折線圖x=[size(data,2):-1:1]%表示變量個(gè)數(shù)并倒寫出它們作為x軸如4,3,2,1plot(x,y,'o')%繪制散點(diǎn)圖gridon;%顯示格線holdon;%不換畫布繼續(xù)在這張畫布上繪制xlabel('x');%x軸名稱ylabel('y');%y軸名稱plot(x,y,'-','Color','r','lineWidth',1)%繪制折線圖對(duì)特征值排序[lambda,ind]=sort(diag(lambda),'descend')%排序求每個(gè)特征值的貢獻(xiàn)度lambda=lambda./sum(lambda)%特征值的貢獻(xiàn)度累計(jì)貢獻(xiàn)度lambda=cumsum(lambda)%累計(jì)貢獻(xiàn)度選出累計(jì)貢獻(xiàn)度小于85%之前的指標(biāo)k=find(lambda>0.85)%選出貢獻(xiàn)率達(dá)到85的指標(biāo)前K個(gè)選出主成分,并得出相對(duì)應(yīng)的矩陣M=M(:,ind(1:k(1)-1)%%取前k列M=(-1)*M得到降維后的XmappedX=data*M%降維后的X畫色塊矩陣圖mapping.M=M%映射的基設(shè)置色塊矩陣圖x,y軸所標(biāo)注的名稱XVarNames={'A'};%個(gè)數(shù)等于上面基的列數(shù)YVarNames={'A','B','C','D','E'};%個(gè)數(shù)等于上面基的行數(shù)數(shù)值矩陣圖代碼:matrixplot(M,'FillStyle','nofill','XVarNames',XVarNames,'YVarNames',YVarNames)%色塊顏色表示matrixplot(M,'XVarNames',XVarNames,'YVarNames',YVarNames,'DisplayOpt','off','FigSize','Auto','ColorBar','on');在matlab新建函數(shù)命名為:matrixplot##matrixplot源碼##functionmatrixplot(data,varargin)%matrixplot(x,'TextColor','k','FigShap','d','FigSize','Full','ColorBar','on','FigStyle','Triu');%XVarNames={'xiezhh','heping','keda','tust','tianjin'};%matrixplot(x,'FigShap','e','FigSize','Auto','ColorBar','on','XVarNames',XVarNames,'YVarNames',XVarNames);%對(duì)第一個(gè)輸入?yún)?shù)類型進(jìn)行判斷if~ismatrix(data)||~isreal(data)error('輸入?yún)?shù)類型不匹配:第一個(gè)輸入?yún)?shù)應(yīng)為實(shí)值矩陣');end%解析成對(duì)出現(xiàn)的參數(shù)名/參數(shù)值[FigShape,FigSize,FigStyle,FillStyle,DisplayOpt,TextColor,XVarNames,...YVarNames,ColorBar,GridOpt]=parseInputs(varargin{:});%產(chǎn)生網(wǎng)格數(shù)據(jù)[m,n]=size(data);[x,y]=meshgrid(0:n,0:m);data=data(:);maxdata=nanmax(data);mindata=nanmin(data);rangedata=maxdata-mindata;ifisnan(rangedata)warning('MATLAB:warning1','請檢查您輸入的矩陣是否合適!');return;endz=zeros(size(x))+0.2;sx=x(1:end-1,1:end-1)+0.5;sy=y(1:end-1,1:end-1)+0.5;ifstrncmpi(FigStyle,'Tril',4)z(triu(ones(size(z)),2)>0)=NaN;sx(triu(ones(size(sx)),1)>0)=NaN;elseifstrncmpi(FigStyle,'Triu',4)z(tril(ones(size(z)),-2)>0)=NaN;sx(tril(ones(size(sx)),-1)>0)=NaN;endsx=sx(:);sy=sy(:);id=isnan(sx)|isnan(data);sx(id)=[];sy(id)=[];data(id)=[];ifisempty(XVarNames)XVarNames=strcat('X',cellstr(num2str((1:n)')));elseif(iscell(XVarNames)&&(numel(XVarNames)~=n))||(~iscell(XVarNames)&&(size(XVarNames,1)~=n))error('X軸方向變量名應(yīng)為字符串矩陣或字符串元胞數(shù)組,其長度與輸入矩陣的列數(shù)相同');endendifisempty(YVarNames)YVarNames=strcat('Y',cellstr(num2str((1:m)')));elseif(iscell(YVarNames)&&(numel(YVarNames)~=m))||(~iscell(YVarNames)&&(size(YVarNames,1)~=m))error('Y軸方向變量名應(yīng)為字符串矩陣或字符串元胞數(shù)組,其長度與輸入矩陣的行數(shù)相同');endend%繪圖figure('color','w',...'units','normalized',...'pos',[0.289165,0.154948,0.409956,0.68099]);axes('units','normalized','pos',[0.1,0.022,0.89,0.85]);ifstrncmpi(GridOpt,'On',2)mesh(x,y,z,...'EdgeColor',[0.7,0.7,0.7],...'FaceAlpha',0,...'LineWidth',1);%參考網(wǎng)格線endholdon;axisequal;axis([-0.1,n+0.1,-0.1,m+0.1,-0.5,0.5]);view(2);%設(shè)置X軸和Y軸刻度位置及標(biāo)簽set(gca,'Xtick',(1:n)-0.5,...'XtickLabel',XVarNames,...'Ytick',(1:m)-0.5,...'YtickLabel',YVarNames,...'XAxisLocation','top',...'YDir','reverse',...'Xcolor',[0.7,0.7,0.7],...'Ycolor',[0.7,0.7,0.7],...'TickLength',[0,0]);axisoff%繪制填充色塊ifstrncmpi(FillStyle,'Fill',3)MyPatch(sx',sy',data',FigShape,FigSize);end%顯示數(shù)值文本信息ifstrncmpi(DisplayOpt,'On',2)str=num2str(data,'%4.2f');scale=0.1*max(n/m,1)/(max(m,n)^0.55);ifstrncmpi(TextColor,'Auto',3)ColorMat=get(gcf,'ColorMap');nc=size(ColorMat,1);cid=fix(mapminmax(data',0,1)*nc)+1;cid(cid<1)=1;cid(cid>nc)=nc;TextColor=ColorMat(cid,:);fori=1:numel(data)text(sx(i),sy(i),0.1,str(i,:),...'FontUnits','normalized',...'FontSize',scale,...'fontweight','bold',...'HorizontalAlignment','center',...'Color',TextColor(i,:));endelsetext(sx,sy,0.1*ones(size(sx)),str,...'FontUnits','normalized',...'FontSize',scale,...'fontweight','bold',...'HorizontalAlignment','center',...'Color',TextColor);endend%設(shè)置X軸和Y軸刻度標(biāo)簽的縮進(jìn)方式MyTickLabel(gca,FigStyle);%添加顏色條ifstrncmpi(ColorBar,'On',2)ifany(strncmpi(FigStyle,{'Auto','Triu'},4))colorbar('Location','EastOutside');elsecolorbar('Location','SouthOutside');endendend%---------------------------------------------------%調(diào)整坐標(biāo)軸刻度標(biāo)簽子函數(shù)%---------------------------------------------------functionMyTickLabel(ha,tag)%根據(jù)顯示范圍自動(dòng)調(diào)整坐標(biāo)軸刻度標(biāo)簽的函數(shù)%ha坐標(biāo)系句柄值%tag調(diào)整坐標(biāo)軸刻度標(biāo)簽的標(biāo)識(shí)字符串,可用取值如下:%'Auto'---將x軸刻度標(biāo)簽旋轉(zhuǎn)90度,y軸刻度標(biāo)簽不作調(diào)整%'Tril'---將x軸刻度標(biāo)簽旋轉(zhuǎn)90度,并依次縮進(jìn),y軸刻度標(biāo)簽不作調(diào)整%'Triu'---將x軸刻度標(biāo)簽旋轉(zhuǎn)90度,y軸刻度標(biāo)簽依次縮進(jìn)%Example:%MyTickLabel(gca,'Tril');if~ishandle(ha)warning('MATLAB:warning2','第一個(gè)輸入?yún)?shù)應(yīng)為坐標(biāo)系句柄');return;endif~strcmpi(get(ha,'type'),'axes')warning('MATLAB:warning3','第一個(gè)輸入?yún)?shù)應(yīng)為坐標(biāo)系句柄');return;endaxes(ha);xstr=get(ha,'XTickLabel');xtick=get(ha,'XTick');xl=xlim(ha);ystr=get(ha,'YTickLabel');ytick=get(ha,'YTick');yl=ylim(ha);set(ha,'XTickLabel',[],'YTickLabel',[]);x=zeros(size(ytick))+xl(1)-range(xl)/30;y=zeros(size(xtick))+yl(1)-range(yl)/70;nx=numel(xtick);ny=numel(ytick);ifstrncmpi(tag,'Tril',4)y=y+(1:nx)-1;elseifstrncmpi(tag,'Triu',4)x=x+(1:ny)-1;endtext(xtick,y,xstr,...'rotation',90,...'Interpreter','none',...'color','r',...'HorizontalAlignment','left');text(x,ytick,ystr,...'Interpreter','none',...'color','r',...'HorizontalAlignment','right');end%---------------------------------------------------%根據(jù)散點(diǎn)數(shù)據(jù)繪制3維色塊圖子函數(shù)%---------------------------------------------------functionMyPatch(x,y,z,FigShape,FigSize)%根據(jù)散點(diǎn)數(shù)據(jù)繪制3維色塊圖%MyPatch(x,y,z,FigShape,FigSize)x,y,z是實(shí)值數(shù)組,用來指定色塊中心點(diǎn)三維%坐標(biāo)。FigShape是字符串變量,用來指定色塊形狀。%FigSize是字符串變量,用來指定色塊大小。%%Example:%x=rand(10,1);%y=rand(10,1);%z=rand(10,1);%MyPatch(x,y,z,'s','Auto');%%輸入?yún)?shù)類型判斷ifnargin<3error('至少需要三個(gè)輸入?yún)?shù)');endif~isreal(x)||~isreal(y)||~isreal(z)error('前三個(gè)輸入應(yīng)為實(shí)值數(shù)組');endn=numel(z);ifnumel(x)~=n||numel(y)~=nerror('坐標(biāo)應(yīng)等長');endifstrncmpi(FigSize,'Auto',3)&&~strncmpi(FigShape,'Ellipse',1)id=(z==0);x(id)=[];y(id)=[];z(id)=[];endifisempty(z)return;end%求色塊頂點(diǎn)坐標(biāo)rab1=ones(size(z));maxz=max(abs(z));ifmaxz==0maxz=1;endrab2=abs(z)/maxz;ifstrncmpi(FigShape,'Square',1)%方形ifstrncmpi(FigSize,'Full',3)r=rab1;elser=sqrt(rab2);endSquareVertices(x,y,z,r);elseifstrncmpi(FigShape,'Circle',1)%圓形ifstrncmpi(FigSize,'Full',3)r=0.5*rab1;elser=0.5*sqrt(rab2);endCircleVertices(x,y,z,r);elseifstrncmpi(FigShape,'Ellipse',1)%橢圓形a=0.48+rab2*(0.57-0.48);b=(1-rab2).*a;EllipseVertices(x,y,z,a,b);elseifstrncmpi(FigShape,'Hexagon',1)%六邊形ifstrncmpi(FigSize,'Full',3)r=0.5*rab1;elser=0.5*sqrt(rab2);endHexagonVertices(x,y,z,r);else%表盤形ifstrncmpi(FigSize,'Full',3)r=0.45*rab1;elser=0.45*sqrt(rab2);endDialVertices(x,y,z,r);endend%--------------------------------------------------%求色塊頂點(diǎn)坐標(biāo)并繪制色塊的子函數(shù)%--------------------------------------------------functionSquareVertices(x,y,z,r)%方形hx=r/2;hy=hx;Xp=[x-hx;x-hx;x+hx;x+hx;x-hx];Yp=[y-hy;y+hy;y+hy;y-hy;y-hy];Zp=repmat(z,[5,1]);patch(Xp,Yp,Zp,'FaceColor','flat','EdgeColor','flat');endfunctionCircleVertices(x,y,z,r)%圓形t=linspace(0,2*pi,30)';m=numel(t);Xp=repmat(x,[m,1])+cos(t)*r;Yp=repmat(y,[m,1])+sin(t)*r;Zp=repmat(z,[m,1]);patch(Xp,Yp,Zp,'FaceColor','flat','EdgeColor','flat');endfunctionEllipseVertices(x,y,z,a,b)%橢圓形t=linspace(0,2*pi,30)';m=numel(t);t0=-sign(z)*pi/4;t0=repmat(t0,[m,1]);x0=cos(t)*a;y0=sin(t)*b;Xp=repmat(x,[m,1])+x0.*cos(t0)-y0.*sin(t0);Yp=repmat(y,[m,1])+x0.*sin(t0)+y0.*cos(t0);Zp=repmat(z,[m,1]);patch(Xp,Yp,Zp,'FaceColor','flat','EdgeColor','flat');endfunctionHexagonVertices(x,y,z,r)%六邊形t=linspace(0,2*pi,7)';m=numel(t);Xp=repmat(x,[m,1])+cos(t)*r;Yp=repmat(y,[m,1])+sin(t)*r;Zp=repmat(z,[m,1]);patch(Xp,Yp,Zp,'FaceColor','flat','EdgeColor','flat');endfunctionDialVertices(x,y,z,r)%表盤形%繪制表盤扇形maxz=max(abs(z));t0=z*2*pi/maxz-pi/2;t0=cell2mat(arrayfun(@(x)linspace(-pi/2,x,30)',t0,'UniformOutput',0));m=size(t0,1);r0=repmat(r,[m,1]);Xp=[x;repmat(x,[m,1])+r0.*cos(t0);x];Yp=[y;repmat(y,[m,1])+r0.*sin(t0);y];Zp=repmat(z,[m+2,1]);patch(Xp,Yp,Zp,'FaceColor','flat','EdgeColor',[0,0,0]);%繪制表盤圓周t=linspace(0,2*pi,30)';m=numel(t);Xp=repmat(x,[m,1])+cos(t)*r;Yp=repmat(y,[m,1])+sin(t)*r;Zp=repmat(z,[m,1]);Xp=[Xp;flipud(Xp)];Yp=[Yp;flipud(Yp)];Zp=[Zp;flipud(Zp)];patch(Xp,Yp,Zp,'FaceColor','flat','EdgeColor',[0,0,0]);end%--------------------------------------------------------------------------%解析輸入?yún)?shù)子函數(shù)1%--------------------------------------------------------------------------function[FigShape,FigSize,FigStyle,FillStyle,DisplayOpt,TextColor,...XVarNames,YVarNames,ColorBar,GridOpt]=parseInputs(varargin)ifmod(nargin,2)~=0error('輸入?yún)?shù)個(gè)數(shù)不對(duì),應(yīng)為成對(duì)出現(xiàn)');endpnames={'FigShape','FigSize','FigStyle','FillStyle','DisplayOpt',...'TextColor','XVarNames','YVarNames','ColorBar','Grid'};dflts={'Square','Full','Auto','Fill','On','k','','','Off','On'};[FigShape,FigSize,FigStyle,FillStyle,DisplayOpt,TextColor,XVarNames,...YVarNames,ColorBar,GridOpt]=parseArgs(pnames,dflts,varargin{:});validateattributes(FigShape,{'char'},{'nonempty'},mfilename,'FigShape');validateattributes(FigSize,{'char'},{'nonempty'},mfilename,'FigSize');validateattributes(FigStyle,{'char'},{'nonempty'},mfilename,'FigStyle');validateattributes(FillStyle,{'char'},{'nonempty'},mfilename,'FillStyle');validateattributes(DisplayOpt,{'char'},{'nonempty'},mfilename,'DisplayOpt');validateattributes(TextColor,{'char','numeric'},{'nonempty'},mfilename,'TextColor');validateattributes(XVarNames,{'char','cell'},{},mfilename,'XVarNames');validateattributes(YVarNames,{'char','cell'},{},mfilename,'YVarNames');validateattributes(ColorBar,{'char'},{'nonempty'},mfilename,'ColorBar');validateattributes(GridOpt,{'char'},{'nonempty'},mfilename,'Grid');if~any(strncmpi(FigShape,{'Square','Circle','Ellipse','Hexagon','Dial'},1))error('形狀參數(shù)只能為Square,Circle,Ellipse,Hexagon,Dial之一');endif~any(strncmpi(FigSize,{'Full','Auto'},3))error('圖形大小參數(shù)只能為Full,Auto之一');endif~any(strncmpi(FigStyle,{'Auto','Tril','Triu'},4))error('圖形樣式參數(shù)只能為Auto,Tril,Triu之一');endif~any(strncmpi(FillStyle,{'Fill','NoFill'},3))error('圖形填充樣式參數(shù)只能為Fill,NoFill之一');endif~any(strncmpi(DisplayOpt,{'On','Off'},2))error('顯示數(shù)值參數(shù)只能為On,Off之一');endif~any(strncmpi(ColorBar,{'On','Off'},2))error('顯示顏色條參數(shù)只能為On,Off之一');endif~any(strncmpi(GridOpt,{'On','Off'},2))error('顯示網(wǎng)格參數(shù)只能為On,Off之一');endend%--------------------------------------------------------------------------%解析輸入?yún)?shù)子函數(shù)2%--------------------------------------------------------------------------function[varargout]=parseArgs(pnames,dflts,varargin)%Copyright2010-2011TheMathWorks,Inc.%$Revision:$$Date:2011/05/0901:27:26$%Initializesomevariablesnparams=length(pnames);varargout=dflts;setflag=false(1,nparams);unrecog={};nargs=length(varargin);dosetflag=nargout>nparams;dounrecog=nargout>(nparams+1);%Musthavename/valuepairsifmod(nargs,2)~=0m=message('stats:internal:parseArgs:WrongNumberArgs');throwAsCaller(MException(m.Identifier,'%s',getString(m)));end%Processname/valuepairsforj=1:2:nargspname=varargin{j};if~ischar(pname)m=message('stats:internal:parseArgs:IllegalParamName');throwAsCaller(MException(m.Identifier,'%s',getString(m)));endmask=strncmpi(pname,pnames,length(pname));%lookforpartialmatch
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025-2030全球鹽酸毛果蕓香堿行業(yè)調(diào)研及趨勢分析報(bào)告
- 2025服務(wù)器托管合同書模板
- 綠色供應(yīng)鏈一體化管理合同
- 2025關(guān)于醫(yī)藥采購合同
- 品牌服務(wù)協(xié)議書合同范本
- 濱海新區(qū)應(yīng)急管理局
- 房屋租賃權(quán)轉(zhuǎn)讓合同范文
- 建筑材料居間合同
- 藥品購銷標(biāo)準(zhǔn)合同
- 企業(yè)間借款擔(dān)保合同
- 2025年?duì)I口職業(yè)技術(shù)學(xué)院高職單招職業(yè)適應(yīng)性測試近5年??及鎱⒖碱}庫含答案解析
- 七年級(jí)歷史下冊第2課唐朝建立與貞觀之治
- 8.3+區(qū)域性國際組織+課件高中政治統(tǒng)編版選擇性必修一當(dāng)代國際政治與經(jīng)濟(jì)
- 2025年國網(wǎng)陜西省電力限公司高校畢業(yè)生招聘1100人(第二批)高頻重點(diǎn)提升(共500題)附帶答案詳解
- 李四光《看看我們的地球》原文閱讀
- 抖音火花合同電子版獲取教程
- 三對(duì)三籃球賽記錄表
- 礦山電工知識(shí)點(diǎn)講解
- 物業(yè)公司服務(wù)質(zhì)量檢查流程
- 中國心胸外科的歷史和現(xiàn)狀
- 人教版9年級(jí)全一冊英語單詞表
評(píng)論
0/150
提交評(píng)論