如何使用MATLAB對圖片的RGB三種顏色進行提取?
可參考以下方法:
1、首先通過函數對圖片進行讀取并顯示。
imag
C#與Matlab的混合編程中,圖像的數據是如何傳遞的?
我做的是用matlab生成圖像的3維rgb矩陣,回傳給c#。
matlab怎么沿z軸漸變色?
漸變可以用rgb坐標表示例如紅色color[100],綠色[010],黃色[001],其他顏色改變三個坐標而調和
如何用matlab讀出一個灰度圖像各點灰度值大小?
1.調用matlab的圖像讀取函數imread讀圖片,把圖片放在work文件夾下Iimread(樣品.jpg)
2.變為灰度圖Grgb2gray(I)
3.雙擊workspac
image函數?
image(C)會將數組C中的數據顯示為圖像。C的每個元素指定圖像的1個像素的顏色。生成的圖像是一個m×n像素網格,其中m和n分別是C中的行數和列數。這些元素的行索引和列索引確定了對應像素的中心。
image(x,y,C)指定圖像位置。使用x和y可指定與C(1,1)和C(m,n)對應的邊角的位置。要同時指定兩個邊角,請將x和y設置為二元素向量。要指定第一個邊角并讓image確定另一個,請將x和y設為標量值。圖像將根據需要進行拉伸和定向。
image(CData,C)將圖像添加到當前坐標區中而不替換現有繪圖。此語法是image(C)的低級版本。
image(XData,x,YData,y,CData,C)指定圖像位置。此語法是image(x,y,C)的低級版本。
image(___,Name,Value)使用一個或多個名稱-值對組參數指定圖像屬性。可以使用先前語法中的任意輸入參數組合指定圖像屬性。
image(ax,___)將在由ax指定的坐標區中而不是當前坐標區(gca)中創建圖像。選項ax可以位于前面的語法中的任何輸入參數組合之前。
imimage(___)返回創建的Image對象。使用im在創建圖像后設置圖像的屬性。可以使用先前語法中的任意輸入參數組合指定此輸出。
示例
顯示矩陣數據的圖像
創建矩陣C。顯示C中數據的圖像。向圖形添加顏色欄以顯示當前顏。
C[0246;8101214;16182022];
image(C)
colorbar
默認情況下,圖像的CDataMapping屬性設置為direct,因此image會將C中的值解釋為顏的索引。例如,與C中最后一個元素(22)對應的右下方像素使用顏的第22個顏色。通過在創建圖像時將CDataMapping屬性設置為scaled,將值的范圍縮放到當前顏的完整范圍。
image(C,CDataMapping,scaled)
colorbar
也可以使用imagesc函數縮放這些值,而不是使用image(C,CDataMapping,scaled)。例如,使用imagesc(C)。
控制圖像位置
放置圖像,使其位于x軸上的5和8之間及y軸上的3和6之間。
x[58];
y[36];
C[0246;8101214;16182022];
image(x,y,C)
請注意,對應于C(1,1)的像素居中顯示在點(5,3)上。對應于C(3,4)的像素在點(8,6)上居中顯示。image在這兩個點之間定位和定向該圖像的其余部分。
顯示三維真彩色數組的圖像
創建C作為真彩色三維數組。將該數組的最后兩頁設為零,以便僅使用紅色。
Czeros(3,3,3);
C(:,:,1)[.1.2.3;.4.5.6;.7.8.9]
C
C(:,:,1)
0.10000.20000.3000
0.40000.50000.6000
0.70000.80000.9000
C(:,:,2)
000
000
000
C(:,:,3)
000
000
000
顯示C中數據的圖像。
image(C)
創建后修改圖像
繪制一個線條,然后在該線條上方創建一個圖像。返回圖像對象。
plot(1:3)
holdon
C[123;456;789];
imimage(C);
使圖像半透明,這樣線條就會在圖像中透明呈現。
0.5;
讀取并顯示JPEG圖像文件
讀取JPEG圖像文件。
Cimread();
imread返回650×600×3數組C。顯示圖像。
image(C)
向三維視圖中的坐標區添加圖像
創建一個曲面圖。然后,在曲面下添加一個圖像。image在xy平面中顯示該圖像。
Z10peaks;
surf(Z)
holdon
image(Z,CDataMapping,scaled)
下圖演示了兩種顏色模型的C的相對維度。
NaN元素的行為未定義。要改用image函數的低級版本,請將CData屬性設為名稱-值對組。例如,image(CData,C)。
在數據類型間轉換
要將索引圖像數據從整數類型轉換為double類型,請加上1。例如,如果X8為uint8類型的索引圖像數據,則使用以下語法將其轉換為double類型:
X64double(X8)1;
要將索引圖像數據從double類型轉換為整數類型,請減去1并使用round確保所有值都為整數。例如,如果X64為double類型的索引圖像數據,則使用以下語法將其轉換為uint8:
X8uint8(round(X64-1));
要將真彩像數據從整數類型轉換為double類型,請重新縮放數據。例如,如果RGB8為uint8類型的真彩像數據,則使用以下語法將其轉換為double:
RGB64double(RGB8)/255;
要將真彩像數據從double類型轉換為整數類型,請重新縮放數據并使用round確保所有值都為整數。例如,如果RGB64為double類型的圖像數據,則使用以下語法將其轉換為uint8:
RGB8uint8(round(RGB64*255));
圖像的高級與低級版本
image函數有兩個版本:高級版本和低級版本。如果使用的image將CData作為輸入參數,則使用的是低級版本。否則,您使用的是高級版本。
image的高級版本在繪圖前調用newplot并設置以下坐標區屬性:
Layer至top。該圖像顯示在任何刻度線或網格線前面。
YDir至reverse。沿y軸的值從上到下遞增。要使值從上到正在減少,請將YDir設置為正常。此設置反轉y軸和圖像。查看到[090]。image函數的較低版本不調用newplot,也不設置這些坐標區域屬性。建議從不同標準格式(如TIFF)的圖形文件中讀取圖像數據到MATLAB,使用imread。要將MATLAB圖像數據寫入圖形文件,請使用imwrite。Imread和imwrite函數支持各種圖形文件格式和壓縮方案。