Matlab中imagesc用法


來源:https://ww2.mathworks.cn/help/matlab/ref/imagesc.html?searchHighlight=imagesc&s_tid=doc_srchtitle

imagesc

顯示使用經過標度映射的顏色的圖像

全頁折疊
 

說明

示例

imagesc(C) 將數組 C 中的數據顯示為一個圖像,該圖像使用顏色圖中的全部顏色。C 的每個元素指定圖像的一個像素的顏色。生成的圖像是一個 m×n 像素網格,其中 mn 分別是 C 中的行數和列數。這些元素的行索引和列索引確定了對應像素的中心。

示例

imagesc(x,y,C) 指定圖像位置。使用 xy 可指定與 C(1,1)C(m,n) 對應的邊角的位置。要同時指定兩個邊角,請將 xy 設置為二元素向量。要指定第一個邊角並讓 imagesc 確定另一個,請將 xy 設為標量值。圖像將根據需要進行拉伸和定向。

imagesc('CData',C) 將圖像添加到當前坐標區中而不替換現有繪圖。此語法是 imagesc(C) 的低級版本。有關詳細信息,請參閱高級與低級版本

imagesc('XData',x,'YData',y,'CData',C) 指定圖像位置。此語法是 imagesc(x,y,C) 的低級版本。

imagesc(___,Name,Value) 使用一個或多個名稱-值對組參數指定圖像屬性。您可以在上述語法中的任何輸入參數組合后指定名稱-值對組參數。如需圖像屬性和說明的列表,請參閱 Image 屬性

示例

imagesc(___,clims) 指定映射到顏色圖的第一個和最后一個元素的數據值。將 clims 指定為 [cmin cmax] 形式的二元素向量,其中小於或等於 cmin 的值映射到顏色圖中的第一種顏色,大於或等於 cmax 的值映射到顏色圖中的最后一種顏色。在名稱-值對組參數后指定 clims

imagesc(ax,___) 將在由 ax 指定的坐標區中而不是當前坐標區 (gca) 中創建圖像。指定坐標區作為第一個輸入參數。

示例

im = imagesc(___) 返回創建的 Image 對象。使用 im 在創建圖像后設置圖像的屬性。您可以使用先前語法中的任意輸入參數組合指定此輸出。

 

示例

全部折疊

顯示矩陣數據的圖像

創建矩陣 C。顯示 C 中數據的圖像。向圖添加顏色欄以顯示當前顏色圖。默認情況下,imagesc 色階顏色范圍以便圖像使用顏色圖中的所有顏色,其中 C 中的最小值映射到顏色圖中的第一種顏色,最大值映射到最后一種顏色。

C = [0 2 4 6; 8 10 12 14; 16 18 20 22];
imagesc(C)
colorbar

 
 

控制圖像位置

放置圖像,使其位於 x 軸上的 5 和 8 之間及 y 軸上的 3 和 6 之間。

x = [5 8];
y = [3 6];
C = [0 2 4 6; 8 10 12 14; 16 18 20 22];
imagesc(x,y,C)

請注意,對應於 C(1,1) 的像素在點 (5,3) 上居中顯示。對應於 C(3,4) 的像素在點 (8,6) 上居中顯示。imagesc 在這兩個點之間確定圖像其余部分的位置和方向。

 
 

控制數據值到顏色圖的顏色映射

C 創建為數據值的數組。創建 C 的圖像並設置顏色范圍,使 4 或更小的值映射到顏色圖中的第一種顏色,18 或更大的值映射到顏色圖中的最后一種顏色。顯示顏色欄以說明數據值如何映入顏色圖。

C = [0 2 4 6; 8 10 12 14; 16 18 20 22];
clims = [4 18];
imagesc(C,clims)
colorbar

 
 

創建后修改圖像

創建一個圖像並返回圖像對象 im。然后,通過設置圖像對象的 AlphaData 屬性使圖像半透明。

C = [1 2 3; 4 5 6; 7 8 9];
im = imagesc(C);

im.AlphaData = .5;

 
 

向三維視圖中的坐標區添加圖像

創建一個曲面圖。然后,將一個圖像添加在曲面下。imagesc 在 xy 平面中顯示該圖像。

Z = 10 + peaks;
surf(Z)
hold on
imagesc(Z)

 
 

輸入參數

全部折疊

C - 圖像顏色數據
向量或矩陣

圖像顏色數據,指定為向量或矩陣。C 的每個元素定義圖像一個像素的顏色。C 的元素映射到相關聯的坐標區的顏色圖中的顏色。C 中的最小值映射到顏色圖中的第一種顏色,最大值映射到最后一種顏色。NaN 元素的行為未定義。

注意

如果您將 C 指定為 m×n×3 數組,則 imagesc 函數將圖像解釋為真彩色 (RGB) 圖像。imagesc 不重新縮放真彩色圖像的像素值。在調用 imagesc 之前,請使用 rescale 函數縮放真彩色像素值。

要改用 imagesc 函數的低級版本,請將 CData 屬性設為名稱-值對組。例如,imagesc('CData',C)

在數據類型間轉換

要將灰度圖像數據從整數類型轉換為 double 類型,請增加 1。例如,如果 X8uint8 類型的灰度圖像數據,則使用以下語法將其轉換為 double 類型:

X64 = double(X8) + 1;

 

要將灰度圖像數據從 double 類型轉換為整數類型,請減去 1 並使用 round 確保所有值都為整數。例如,如果 X64double 類型的灰度圖像數據,則使用以下語法將其轉換為 uint8

X8 = uint8(round(X64 - 1));

 

數據類型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical

x - 沿着 x 軸放置
[1 size(C,2)] (默認) | 二元素向量 | 標量

沿着 x 軸放置,以下列形式之一指定:

  • 二元素向量 - 將第一個元素用作 C(1,1) 的中心位置,將第二個元素用作 C(m,n) 的中心位置,其中 [m,n] = size(C)。如果 C 為三維數組,則 mn 為前兩個維度。C 的其余元素的中心均勻分布在這兩點之間。

    每個像素的寬度由以下表達式確定:

    (x(2)-x(1))/(size(C,2)-1)

     

    如果 x(1) > x(2),則圖像左右翻轉。

  • 標量 - 會以此位置作為 C(1,1) 的中心,並使后面的每個元素相隔一個單位。

 

要改用 imagesc 函數的低級版本,請將 XData 屬性設為名稱-值對組。例如,imagesc('XData',x,'YData',y,'CData',C)

您無法在以交互方式將圖像平移或縮放到圖像的 x 軸或 y 坐標軸范圍以外,除非設置的坐標軸范圍界限已超出圖像邊界。如果這些軸范圍超出邊界,則無此類限制。如果其他對象(例如,線條)占用坐標區,並延伸到圖像邊界以外,您可以平移或縮放到其他對象的邊界,但不能越過邊界。

數據類型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical

y - 沿着 y 軸放置
[1 size(C,1)] (默認) | 二元素向量 | 標量

沿着 y 軸放置,以下列形式之一指定:

  • 二元素向量 - 將第一個元素用作 C(1,1) 的中心位置,將第二個元素用作 C(m,n) 的中心位置,其中 [m,n] = size(C)。如果 C 為三維數組,則 mn 為前兩個維度。C 的其余元素的中心均勻分布在這兩點之間。

    每個像素的高度由以下表達式確定:

    (y(2)-y(1))/(size(C,1)-1)

     

    如果 y(1) > y(2),則圖像上下翻轉。

  • 標量 - 會以此位置作為 C(1,1) 的中心,並使后面的每個元素相隔一個單位。

 

要改用 imagesc 函數的低級版本,請將 YData 屬性設為名稱-值對組。例如,imagesc('XData',x,'YData',y,'CData',C)

您無法在以交互方式將圖像平移或縮放到圖像的 x 軸或 y 坐標軸范圍以外,除非設置的坐標軸范圍界限已超出圖像邊界。如果這些軸范圍超出邊界,則無此類限制。如果其他對象(例如,線條)占用坐標區,並延伸到圖像邊界以外,您可以平移或縮放到其他對象的邊界,但不能越過邊界。

數據類型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical

clims - 顏色范圍
[cmin cmax] 格式的二元素向量

顏色范圍,指定為 [cmin cmax] 形式的二元素向量,其中 cmax 大於 cminC 中小於或等於 cmin 的值映射到顏色圖中的第一種顏色。大於或等於 cmax 的值將映射到顏色圖中的最后一種顏色。介於 cmincmax 之間的值以線性方式映射到顏色圖。

如果您指定顏色范圍,則 imagesc 函數將坐標區的 CLim 屬性設置為指定的值。如果您不指定顏色范圍,則 imagesc 將坐標區的 CLim 屬性設置為 C 中的最小值和最大值。

ax - Axes 對象
Axes 對象

Axes 對象。如果您不指定 Axes 對象,則 imagesc 使用當前坐標區。

名稱-值對組參數

指定可選的、以逗號分隔的 Name,Value 對組參數。Name 為參數名稱,Value 為對應的值。Name 必須放在引號中。您可采用任意順序指定多個名稱-值對組參數,如 Name1,Value1,...,NameN,ValueN 所示。

示例: imagesc([1 2 3],'AlphaData',0.5) 會顯示半透明圖像。

此處所列的屬性只是一部分圖像屬性。有關完整列表,請參閱 Image 屬性

'AlphaData' - 透明度數據
1 (默認) | 標量 | 大小與 CData 相同的數組

透明度數據,指定為以下格式之一:

  • 標量 - 在整個圖像中使用一致的透明度。

  • 大小與 CData 相同的數組 - 對每個圖像元素使用不同的透明度值。

 

AlphaDataMapping 屬性控制 MATLAB® 如何解釋 alpha 數據透明度值。

示例: 0.5

數據類型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical

'AlphaDataMapping' - AlphaData 值的解釋
'none' (默認) | 'scaled' | 'direct'

AlphaData 值的解釋,指定為下列值之一:

  • 'none' - 將值解釋為透明度值。值 1 或更大的值表示完全不透明,值 0 或更小的值表示完全透明,介於 0 和 1 之間的值表示半透明。

  • 'scaled' - 將值映射到圖窗的 alphamap 中。坐標區的最小和最大 alpha 范圍確定分別映射到 alphamap 中第一個和最后一個元素的 alpha 數據值。例如,如果 alpha 范圍是 [3 5],則小於或等於 3 的 alpha 數據值映射到 alphamap 中的第一個元素。大於或等於 5 的 alpha 數據值映射到顏色圖中的最后一個元素。坐標區的 ALim 屬性包含 alpha 范圍。圖窗的 Alphamap 屬性包含 alphamap。

  • 'direct' - 將值解釋為圖窗的 alphamap 的索引。帶小數部分的值向下舍取為最接近的整數:

    • 如果值為 doublesingle 類型,則小於或等於 1 的值將映射到 alphamap 中的第一個元素。等於或大於 alphamap 的長度的值映射到 alphamap 中的最后一個元素。

    • 如果值的類型為整數,則 0 或更小的值映射到 alphamap 中的第一個元素。等於或大於 alphamap 的長度的值映射到 alphamap 中的最后一個元素(或者最大可為該類型的范圍限值)。整數類型有 uint8uint16uint32uint64int8int16int32int64

    • 如果值為 logical 類型,則值 0 將映射到 alphamap 中的第一個元素,值 1 將映射到 alphamap 中的第二個元素。

輸出參數

全部折疊

im - Image 對象
Image 對象

Image 對象。使用 im 在創建圖像后設置圖像的屬性。有關列表,請參閱 Image 屬性

詳細信息

全部折疊

高級與低級版本

imagesc 函數有兩個版本:高級版本和低級版本。如果您使用的 imagesc'CData' 作為輸入參數,則您使用的是低級版本。否則,您使用的是高級版本。

imagesc 的高級版本在繪圖前調用 newplot 並設置以下坐標區屬性:

  • Layer'top'。該圖像顯示在任何刻度線或網格線前面。

  • YDir'reverse'。沿 y 軸的值從上到下遞增。要使值從上到下遞減,請將 YDir 設置為 'normal'。此設置會反轉 y 軸和圖像。

  • View[0 90]

 

imagesc 函數的低級版本不調用 newplot 且不設置這些坐標區屬性。

對這兩個版本,imagesc 函數進行如下設置:

  • Image 對象的 CData 屬性設置為 C 中的值。

  • Image 對象的 CDataMapping 屬性設置為 'scaled'

  • Axes 對象的 CLim 屬性設置為 C 中的最小值和最大值,除非您指定 clims 輸入參數。

 

提示

  • 要將圖像數據從不同標准格式(如 TIFF)的圖形文件讀取到 MATLAB 中,請使用 imread。要將 MATLAB 圖像數據寫入圖形文件,請使用 imwriteimreadimwrite 函數支持各種圖形文件格式和壓縮方案。

  • 要查看或設置坐標區的顏色范圍,您可以使用 caxis 函數。

擴展功能

用法說明和限制:

  • 此函數接受 GPU 數組,但不在 GPU 上運行。

有關詳細信息,請參閱Run MATLAB Functions on a GPU (Parallel Computing Toolbox)。

用法說明和限制:

  • 此函數在分布式數組上運行,但在客戶端 MATLAB 中執行。

有關詳細信息,請參閱Run MATLAB Functions with Distributed Arrays (Parallel Computing Toolbox)。

另請參閱

函數

屬性

主題


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM