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