資源描述:
《matlab 顏色的使用》由會員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、MATLAB顏色的使用MATLAB提供了許多在二維和三維空間內(nèi)顯示可視信息的工具。例如,看一條sin函數(shù)的曲線圖就會比一堆數(shù)據(jù)提供更多的信息。這種用圖表和圖形來表示數(shù)據(jù)的技術(shù)叫做數(shù)據(jù)可視化。MATLAB不僅是一個強(qiáng)大的計(jì)算工具,并且在以引人入勝和直觀方式可視地表示數(shù)據(jù)方面也很有特色。但是很多時候,一個簡單的二維或三維圖形不能一次顯示出想要提供的全部信息。這時,顏色可以對圖形提供一個附加的維數(shù)。前面章節(jié)討論的許多繪圖函數(shù)都可以接受一個可用的顏色參量,來增加這附加的維數(shù)。本章的討論以研究顏色映象開始:如何使用、顯示、修改和如
2、何創(chuàng)建用戶自己的顏色映象。然后,闡述在一個圖形窗口中仿真多個顏色映象的技術(shù)或只使用顏色映象的一部分的技術(shù)。最后,討論照明模型并提供例子。1顏色映象理解MATLAB有一個叫顏色映象的數(shù)據(jù)結(jié)構(gòu)來代表顏色值。顏色映象定義為一個有三列和若干行的矩陣。利用0到1之間的數(shù),矩陣的每一行都代表了一種色彩。任一行的數(shù)字都指定了一個RGB值,即紅、黃、藍(lán)三種顏色的強(qiáng)度,形成一種特定的顏色。一些有代表性的RGB值在表1中給出。表1簡單顏色RedGreenBlue顏色000黑111白100紅010綠001藍(lán)110黃101洋紅011青藍(lán)2/32
3、/31天藍(lán)10.50橘黃0.500深紅0.50.50.5灰色有十個MATLAB函數(shù)產(chǎn)生預(yù)定的顏色映象。見表2表2標(biāo)準(zhǔn)顏色影像hsv色彩飽和值(以紅色開始和結(jié)束)hot從黑到紅到黃到白cool青藍(lán)和洋紅的色度pink粉紅的彩色度gray線性灰度bone帶一點(diǎn)藍(lán)色的灰度jethsv的一種變形(以藍(lán)色開始和結(jié)束)copper線性銅色度prim三棱鏡。交替為紅色、橘黃色、黃色、綠色和天藍(lán)色flag交替為紅色、白色、藍(lán)色和黑色按缺省,上面所列的各個顏色映象產(chǎn)生一個64×3的矩陣,指定了64種顏色RGB的描述。這些函數(shù)都接受一個參量
4、來指定所產(chǎn)生矩陣的行數(shù)。比如hot(m)產(chǎn)生一個m×3的矩陣,它包含的RGB顏色值的范圍從黑經(jīng)過紅、橘紅和黃,到白。大多數(shù)計(jì)算機(jī)在一個8位的硬件查色表中一次可以顯示256種顏色,當(dāng)然有些計(jì)算機(jī)的顯示卡可以同時顯示更多的顏色。這就意味著在不同的圖中,一般一次可以用三或四個64×3的顏色映象。如果使用了更多的顏色映象輸入項(xiàng),計(jì)算機(jī)必須經(jīng)常在它的硬件查色表中調(diào)出輸入項(xiàng)。比如,當(dāng)在畫MATLAB圖形時背景圖案發(fā)生了變化,就是發(fā)生了這種情況。所以,除非計(jì)算機(jī)有一次顯示更多種顏色的顯示卡,最好任何一次所用的顏色映象輸入項(xiàng)數(shù)都小于25
5、6。2顏色映象使用語句colormap(M)將矩陣M作為當(dāng)前圖形窗口所用的顏色映象。例如,colormap(cool)裝入了一個有64個輸入項(xiàng)的cool顏色映象。colormapdefault裝入了缺省的顏色映象(hsv)。函數(shù)plot、plot3、contour和contour3不使用顏色映象,它們使用列在plot顏色和線形表中的顏色。而大多數(shù)其它繪圖函數(shù),比如mesh、surf、fill、pcolor和它們的各種變形函數(shù),使用當(dāng)前的顏色映象。接受顏色參量的繪圖函數(shù)中的顏色參量通常采用以下三種形式之一:(1)字符串。代
6、表plot顏色或線型表中的一種顏色,比如,’r‘代表紅色;(2)三個輸入的行向量。它代表一個單獨(dú)的RGB值,比如[.25.50.75];(3)矩陣。如果顏色參量是一個矩陣,其元素作了調(diào)整,并把它們用作當(dāng)前顏色映象的下標(biāo)。最后一種形式會在以后作更多討論。3顏色映象顯示可以用多種途徑來顯示一個顏色映象。其中一個方法是觀察顏色映象矩陣的元素。?hot(8)ans=0.3333000.6667001.0000001.00000.333301.00000.666701.00001.000001.00001.00000.50001.
7、00001.00001.0000上面的數(shù)據(jù)顯示出第一行是1/3紅色,而最后一行是白色。另外,函數(shù)pcolor可以用來顯示一個顏色映象。例如:?n=16;?colormap(jet(n))?pcolor([1:n+1;1:n+1]’)?title(‘UsingPcolortoDisplayaColorMap’)因?yàn)樯厦孢@一段程序很有用處,它已經(jīng)裝入精通MATLAB工具箱中的函數(shù)mmshow中。?helpmmshowMMSHOWPCOLORColormapDisplayMMSHOWusespccolortodisplayth
8、ecurrentcolormap.MMSHOW(MAP)displaysthecolormapMAP.MMSHOW(MAP(N))displaysthecolormapMAPhavingNelements.Examples:MMSHOW(hot)MMSHOW(pink(30))幫助信息:MMSHOW顯示PCOLOR顏