如何用matlab手動取出彩色影象的RGB值並儲存?請寫出

時間 2022-01-17 01:15:07

1樓:益飇

clear all,clc;

im=imread('1.jpg');%1.jpg為**,在m檔案所在目錄下

s=size(im);

r=im(:,:,1);

g=im(:,:,2);

b=im(:,:,3);

r=reshape(r,[s(1),s(2)]);

g=reshape(g,[s(1),s(2)]);

b=reshape(b,[s(1),s(2)]);

r=mean(mean(r));%紅色均值g=mean(mean(g));%綠色均值b=mean(mean(b));%藍色均值

2樓:天上的一條龍

close all,clear all,clc;

im=imread('1.jpg');%1.jpg為**,在m檔案所在目錄下

s=size(im);

r=im(:,:,1);

g=im(:,:,2);

b=im(:,:,3);

r=reshape(r,[s(1),s(2)]);

g=reshape(g,[s(1),s(2)]);

b=reshape(b,[s(1),s(2)]);

rgb值已經儲存在矩陣r,g,b

由於不知道你的具體要求,只能先這樣了...

3樓:

手動取出?什麼意思

只有顯示出rgb的值,值在圖上。

clc,clear;

i=imread('lenargb.bmp');

i1=i(:,:,1);

i2=i(:,:,2);

i3=i(:,:,3);

[y,x,z]=size(i);

d1=zeros(y,x);

d2=d1;

myi=double(i);

i0=zeros(y,x);

for i=1:x

for j=1:y

d1(j,i)=sqrt((myi(j,i,1)-10)^2+(myi(j,i,2)-10)^2+(myi(j,i,3)-10)^2) ;

d2(j,i)=sqrt((myi(j,i,1)-180)^2+(myi(j,i,2)-180)^2+(myi(j,i,3)-180)^2) ;

if d1(j,i)>= d2(j,i)

i0(j,i)=1;

endend

endfigure(1);

subplot(221);imshow(i); title('a 原始影象');

subplot(222);imshow(i1);title('b r分量');

subplot(223);imshow(i2);title('c g分量');

subplot(224);imshow(i3);title('d b分量');

figure(2);

先給你一半的程式,後一半的程式你要再加足夠的分數才給你。

matlab讀取彩色影象的rgb值

4樓:

1、啟動matlab,新建指令碼(ctrl+n),輸入如下**。

2、儲存和執行上述指令碼,讀取並顯示的貓眼星雲**如下。

4、、儲存和執行上述指令碼,得到改變著色的貓眼星雲**如下。

5、colormap( )的選項有jet,hsv,hot,cool,spring,summer,autumn,winter,gray,bone,copper,pink,lines等,可以在命令列視窗(command window)輸入doc colormap檢視幫助文件對colormap的介紹。

5樓:匿名使用者

有區別你用imread讀取的彩色影象是一個3維的矩陣其中第三維的長度是3,而前面兩位的大小正是影象畫素的大小你可以看成是3張和原來影象大小一個樣的**,只是分別存放rgb三個通道的資訊

那麼r1=a(:,:,1)返回的是一個二維的矩陣,大小和**一樣就是取這三張**的第一張**,就是紅色的分量的**而r1=a(:,1)是不對的

6樓:

有區別,第一個影象矩陣是三維的,讀取的是rgb三種顏色中的一種,而第二個是二維的,讀取的是灰度影象的第一列灰度值!

用matlab讀取彩色**,並提取rgb值按畫素順序放到一個三維矩陣裡,該怎麼寫程式?

7樓:匿名使用者

帶程式的那個回答程式是錯誤的,為了提取影象i的r分量,其相應程式為i_r=i(:,:,1)而非答案中所寫的g_r(i,j)=i(i,j,1); %%提取r分量

8樓:匿名使用者

i=imread('mm.bmp'); %%讀取源彩色影象

>> size=size(i);

>> i=size(1);

>> j=size(2);

>> g_r(i,j)=i(i,j,1); %%提取r分量>> g_g(i,j)=i(i,j,2);

>> g_b(i,j)=i(i,j,3);

9樓:匿名使用者

不知道你為什麼要bai生成第一du、

二、三列分別表zhi

示每個dao畫素的r、g、b值的矩陣回,其實matlab自動答把三個通道分開是有道理的,處理會很方便,如果你一定要生產你想要的矩陣,可嘗試以下幾種方法:

1.以進位制的格式讀**,然後去掉影象的資訊頭(注意每個格式的標頭檔案包含的位元組數都不一樣的,以真彩色bmp為例,其標頭檔案有54個位元組,去掉著54個位元組後就是影象的rgb資訊了)

2.第二種會稍微方便些,用imread讀圖生成一個三維矩陣,然後你新建一個你想要的二維矩陣,把前面得到的rgb資訊填充進去

如何在matlab中提取全綵色影象每一點的rgb值,謝謝各位大神

10樓:

im = imread(檔案);

rgb = im(x,y,:);

im就是了,(x,y)是你要取出rgb的畫素點座標

matlab中怎樣提取一幅影象的rgb資訊,並且將結果輸出到一個矩陣中? 5

11樓:阿瞞0超群

clc,clear,close;

im = imread('c:\users\administrator\desktop\123.png') %讀取檔案路徑,im就是你要的舉證

12樓:匿名使用者

1開啟影象

請選擇影象資料');

str=[filepath filename];

image=imread(str);

% 以對話方塊的形式選擇開啟一幅影象

2設定引數

gray=rgb2gray(image);

r=image(:,:,1); g=image(:,:,2); b=image(:,:,3);

diff_r=0; diff_g=0; diff_b=0; % 設定紅、綠、藍三種顏色提取閾值(越大越嚴格)

3紅色提取

image_r=image;

rp_r=image(:,:,1); rp_g=image(:,:,2); rp_b=image(:,:,3);

xyr=~((r-g)>diff_r&(r-b)>diff_r); % 提取紅色條件是r分量與g、b分量差值大於設定

mask=gray(xyr); % 灰**掩膜

rp_r(xyr)=mask; rp_g(xyr)=mask; rp_b(xyr)=mask; % 使得非紅色區域變為灰色

image_r(:,:,1)=rp_r; image_r(:,:,2)=rp_g; image_r(:,:,3)=rp_b;

4綠色提取

image_g=image;

gp_r=image(:,:,1); gp_g=image(:,:,2); gp_b=image(:,:,3);

xyg=~((g-r)>diff_g&(g-b)>diff_g); % 提取綠色條件是g分量與r、b分量差值大於設定

mask=gray(xyg); % 灰**掩膜

gp_r(xyg)=mask; gp_g(xyg)=mask; gp_b(xyg)=mask; % 使得非綠色區域變為灰色

image_g(:,:,1)=gp_r; image_g(:,:,2)=gp_g; image_g(:,:,3)=gp_b;

5藍色提取

image_b=image;

bp_r=image(:,:,1);bp_g=image(:,:,2);bp_b=image(:,:,3);

xyb=~((b-r)>diff_b&(b-g)>diff_b); % 提取綠色條件是g分量與r、b分量差值大於設定

mask_b=gray(xyb); % 灰**掩膜

bp_r(xyb)=mask_b; bp_g(xyb)=mask_b; bp_b(xyb)=mask_b; % 使得非藍色區域變為灰色

image_b(:,:,1)=bp_r; image_b(:,:,2)=bp_g; image_b(:,:,3)=bp_b;

6顯示結果

用matlab讀取jpg**,並提取rgb值放到三個二維陣列裡,然後提取綠色均值,紅色均值特徵.要完整程式.

13樓:天上的一條龍

clear all,clc;

im=imread('1.jpg');%1.jpg為**,在m檔案所在目錄下

s=size(im);

r=im(:,:,1);

g=im(:,:,2);

b=im(:,:,3);

r=reshape(r,[s(1),s(2)]);

g=reshape(g,[s(1),s(2)]);

b=reshape(b,[s(1),s(2)]);

r=mean(mean(r));%紅色均值g=mean(mean(g));%綠色均值b=mean(mean(b));%藍色均值

如何使用matlab去除彩色影象背景

figure,imagesc im2 colormap gray matlab簡介 matlab是美國mathworks公司出品的商業數學軟體,用於演算法開發 資料視覺化 資料分析以及數值計算的高階技術計算語言和互動式環境,主要包括matlab和simulink兩大部分。matlab是matrix ...

用matlab畫折線圖,如何用matlab畫一組資料的折線圖

小丁創業 用matlab畫折線圖的操作方法和步驟如下 1 首先,啟動matlab,輸入以下 然後使用xlsread 讀取學生考試成績資料,如下圖所示。2 其次,完成上述步驟後,儲存並執行以上內容,可以在工作區看到,學生的數學,英語,物理成績已被成功讀取,如下圖所示。3 接著,完成上述步驟後,使用條形...

如何用MATLAB擬合Logistic曲線求解曲線方程的特徵引數

logistic模型 a 1 a b 1 exp k t 實現 clc,clear all,close all logistic模型用matlab求解 時間是2000年到2010年 資料是q 503.02 526.02 561.96 629.2 700.21 788.15 876.76 989.23...