matlab如何將彩色圖變為灰度圖

時間 2021-09-07 16:13:25

1樓:匿名使用者

很簡單,將以下語句貼上到一個新建的matlab函式檔案裡並取名為rgb2gray2.m(預設即是如此)function j = rgb2gray2(i)j = 0.29894 * i(:

,:,1) + 0.58704 * i(:

,:,2) + 0.11402 * i(:

,:,3);接下來讀入一幅rgb影象到矩陣i中後呼叫j = rgb2gray2(i)即可,j就是轉換後的灰度影象矩陣。需要注意的是,自編函式未考慮太多情況,因此輸入必須是rgb影象的矩陣(可用imshow()函式讀取自硬碟裡的**),如果原本就是灰度影象或其它非法輸入的話將會報錯。

2樓:匿名使用者

廢話不多說,因為是彩色圖直接用自帶的rgb2gray就行了,如果你需要看過程,help調出這個函式就行,或者直接提取他的m函式!(在命令空間直接用type rgb2gray),希望能幫到你,我專門做影象處理,不會的隨時可以加我!

3樓:只因朝夕

我覺得這個比較簡單,要先儲存一個**。

4樓:

比如:[filename,pathname]=uigetfile(,'載入影象');

i=[pathname,filename];

i=imread(i);

i=rgb2gray(i);

imshow(i)

在matlab裡如何將jpg格式的彩色**轉化為灰度圖?

5樓:一點設計演示

讀取rgb格式的影象

myfirstgraypic = rgb2gray(myyuanlaipic);%用已有的函式進行rgb到灰度影象的轉換

[rows , cols , colors] = size(myyuanlaipic);%得到原來影象的矩陣的引數

midgraypic = zeros(rows , cols);%用得到的引數建立一個全零的矩陣,這個矩陣用來儲存用下面的方法產生的灰度影象

midgraypic = uint8(midgraypic);%將建立的全零矩陣轉化為uint8格式,因為用上面的語句建立之後影象是double型的

for i = 1:rows

for j = 1:cols

sum = 0;

for k = 1:colors

sum = sum + myyuanlaipic(i , j , k) / 3;%進行轉化的關鍵公式,sum每次都因為後面的數字而不能超過255

endmidgraypic(i , j) = sum;

endendimwrite(midgraypic , 'e:/image/matlab/darkmousegray.png' , 'png');

%顯示原來的rgb影象

figure(1);

imshow(myyuanlaipic);

%顯示經過系統函式運算過的灰度影象

figure(2);

imshow(myfirstgraypic);

%顯示轉化之後的灰度影象

figure(3);

imshow(midgraypic);

6樓:匿名使用者

matlab 如何將彩圖轉成灰度圖

7樓:要當技術宅

需要準備的工具:電腦,matlab軟體。

1、首先在matlab祝主介面輸入一下指令清屏; clear;clc;。

2、  將自己準備的**放在matlab的工作目錄中,直接將**複製到工作目錄中。

3、接著在主介面輸入一下指令,將**轉換成資料;data=imread('資料夾圖示.bmp');

4、 雙擊工作空間中的,data我們可以看到**資料的具體資訊。

5、輸入一下指令,我們可以看到,data資料就是表示的** imshow(data);

6、最後輸入一下指令,就可以獲得一個灰度後的矩陣; gdata=rgb2gray(data)。

8樓:浪小客

1、開啟**:在主介面上輸入命令將影象轉換為資料;data = imread('folder icon.bmp')。

2、檢視資料:雙擊工作區中的資料,我們可以看到影象資料的具體資訊。

4、灰度說明:我們可以通過輸入指令獲得灰度後的矩陣;gdata = rgb2gray(資料)。

5、檢視灰色矩陣:雙擊,右邊的工作區,gdata,可以看到資料的具體資訊。

9樓:路過的奪卡王

如何用matlab把bmp格式變成灰度影象

10樓:匿名使用者

bmp的影象是彩色的,也就是說有rgb三個波段,讀出的影象資料是一個m*n*3的陣列,如果想把它變成灰度影象的,只要分離出任意rgb中的一個分量即可,例如你的影象是1.bmp, x=imread('1.bmp');imshow(x); y=x(:

,:,1); imshow(y);就可以了,不知道你是想怎樣把影象變成灰度的,如果三個分量都想要的話,做個計算也可以的,例如把rgb做個平均;y=1/3*x(:,:

,1)+1/3*x(:,:,2)+1/3*x(:

,:,3);imshow(y);

11樓:匿名使用者

樓上回答正確,其實還可用更為簡單的方法,此為影象處理中的基礎,舉簡例說明。

假設你需將名為face1.bmp的彩色圖轉換為face2.bmp的灰度圖,**如下:

imagename=strcat('face1.bmp');%獲取影象名稱

i= imread(imagename); %讀取彩色影象

j=rgb2gray(i); %轉換為灰度圖

figure(1); %視窗顯示灰度圖

imshow(j);

fname=strcat('face2.bmp');

imwrite(j,fname); %儲存為bmp格式的灰度圖face2

12樓:匿名使用者

可將你要轉換的影象讀入到一個矩陣中,然後採用mat2gray函式將此資料矩陣轉換為灰度影象。

如:bmp=imread('影象名.bmp');

k=filter2(fspecial('sobel'),bmp);

i=mat2gray(k);

imshow(bmp);

figure,imshow(i);

13樓:匿名使用者

麼叫灰度圖?任何顏色都有紅、綠、藍三原色組成,假如原來某點的顏色為rgb(r,g,b),那麼,我們可以通過下面幾種方法,將其轉換為灰度:

1.浮點演算法:gray=r*0.

3+g*0.59+b*0.112.

整數方法:gray=(r*30+g*59+b*11)/1003.移位方法:

gray =(r*28+g*151+b*77)>>8;

4.平均值法:gray=(r+g+b)/3;

5.僅取綠色:gray=g

14樓:匿名使用者

可以直接使用rgb2gray函式。

15樓:匿名使用者

i=imread('影象名.bmp');

r=rgb2gray(i);

firgure,imshow(r);

16樓:匿名使用者

file=get(handles.edit1,'string');

rgb=imread(file);

a=rgb2gray(rgb);

axes(handles.axes2);

imagesc(a)

colormap(gray)

matlab 如何將彩圖轉成灰度圖

要當技術宅 需要準備的工具 電腦,matlab軟體。1 首先在matlab祝主介面輸入一下指令清屏 clear clc 2 將自己準備的 放在matlab的工作目錄中,直接將 複製到工作目錄中。3 接著在主介面輸入一下指令,將 轉換成資料 data imread 資料夾圖示.bmp 4 雙擊工作空間...

如何將matlab中多幅圖合成為一幅圖

1 首先,我們隨機產生三組範圍不同的資料,資料量都為500,他們的邊界分別為 10,15 23,38 38,58 方法如下 x1 10 5 rand 500,1 x2 23 15 rand 500,1 x3 38 20 rand 500,1 2 下面,我們要分別畫出x1,x2,x3對應的曲線,用ma...

如何將Excel資料匯入MATLAB中

方法 步驟 將待匯入的矩陣結構的資料錄入excel中,錄入時注意行列要跟原矩陣一一對應 錄入完以後儲存資料,為了後續步驟使用方便,命名時我們最好把它命名為我們接下來在matlab中要引用的變數名 比如在matlab中要將該矩陣作為b矩陣參與運算,就可以把它命名為b.xls,xls為副檔名 執行mat...