matlab如何將讀取影象後的RGB矩陣變換為二維自定義矩陣

2021-05-02 11:23:20 字數 3671 閱讀 8725

1樓:匿名使用者

這個問題的核心在於怎樣把圖中的各畫素點與指定的四種(五種)顏色對應起來,但圖中的顏色遠不止5種(用hypersnap可以統計出,題主所貼出的影象包含了11234種顏色)。

猜測這樣的交通流圖應該是在某種軟體系統上根據資料生成的,而生成這樣的圖應該會採用某幾種固定的顏色,題主如果是通過軟體截圖的方式得到的圖,請最好使用png格式儲存影象。這是因為,jpeg是一種有失真壓縮格式,儘管從視覺上看起來差別不大,但實際上儲存的時候顏色資訊會有損失,導致多出來很多本來沒有的顏色,而使用png格式可以很大程度上避免這個問題。

例如,使用下述**可以統計出現較多的10種顏色:

x=imread('交通流圖.jpg');

[a,map]=rgb2ind(x,10);

colormap(map)

hist(double(a(:)),10)colorbar

2樓:楊好巨蟹座

讀入彩色圖的時候,是一個二維矩陣,矩陣中每個元素有rgb三個值;

讀灰度圖時,讀入的就是一個二維矩陣,元素值是灰度值i=imread('a.jpg');%讀入**i2=rgb2gray(i); %將彩色圖變成灰色圖使用函式imread,用法如下:

注意example.jpg要在當前工作目錄下

matlab怎麼把一幅影象轉換成二維矩陣或陣列的形式

3樓:草原上之狼

讀入彩色圖的時候,是一個二維矩陣,矩陣中每個元素有rgb三個值;

讀灰度圖時,讀入的就是一個二維矩陣,元素值是灰度值i=imread('a.jpg');%讀入**i2=rgb2gray(i); %將彩色圖變成灰色圖

怎樣用matlab把一副彩色影象的變成資料矩陣

4樓:追逐天涯的風

提取的話簡單的很,比如說你讀入一副影象:a=imread('***.jpg');

然後提取rgb:

r=a(:,:,1);

g=a(:,:,2);

b=a(:,:,3);

就分解成rgb三個二維矩陣了版。之後就可以分別對他們做操作,權比如濾波什麼的。

最後再合併起來就行了。

a2(:,:,1)=r;

a2(:,:,2)=g;

a2(:,:,3)=b;

imshow(a2);

就成功了!

樓主 趕緊試一下吧嘿嘿

怎樣用matlab將影象轉化為矩陣?

5樓:taimi熙熙

2、影象imread後,a已經是矩陣了(彩色的3維,灰度2維);

3、matlab運算元據以矩陣為基礎,也就是計算都是矩陣啦。

matlab的作用

6樓:匿名使用者

讀入彩色圖的時候,是一個二維矩陣,矩陣中每個元素有rgb三個值;

讀灰度圖時,讀入的就是一個二維矩陣,元素值是灰度值i=imread('a.jpg');%讀入**i2=rgb2gray(i); %將彩色圖變成灰色圖

7樓:戳懶貓

一般來講,影象本身儲存就是矩陣 ,你看到的是影象,那是顯示出來的,而實質還是資料的矩陣儲存。

如果你想對 資料處理 後再顯示處理後的效果圖,也是要把處理後的資料轉換成 矩陣 形式,但是行列數要儘量保持一致,否則**顯示結果就很可能不正常。

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

8樓:阿瞞0超群

clc,clear,close;

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

9樓:匿名使用者

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影象矩陣分塊並將分好的塊撒

a randi 100,100 100 100的原來始矩陣,也可以自 是你的影象矩陣 m 2 n 2 c mat2cell a,ones 100 m,1 m,ones 100 n,1 n 按照baim n的小塊進行分塊 輸出的c是元du胞結構,c是分塊後zhi第dao一行第一列的矩陣塊,其他同理。m...

如何用matlab讀取資料夾裡的所有影象並儲存為矩陣,將影象放在矩陣裡,影象,每個圖

file path e myfiles 收藏 data 影象資料夾路徑 獲取該資料夾中所有jpg格式的影象 img num length img path list 獲取影象總數量 if img num 0 有滿足條件的影象 for j 1 img num 逐一讀取影象 image name img...

ps中,將扣出的影象貼上到另一圖層後,如何將該扣出的影象移動

點工具欄的移動命令,用鍵盤上的方向鍵移 層,按ctrl t快捷鍵,再按shift的同時調整圖層的四個角等比調整圖層大小 摳出的影象不是一個圖層嗎 怎樣把ps摳出的圖移到另一個圖層上去 1 演示使用的軟體 復為影象處制理軟體photoshop,本次使用的版本為photoshop cs6。2 首先開啟p...