1樓:阿瞞0超群
clc,clear,close;
im = imread('c:\users\administrator\desktop\123.png') %讀取檔案路徑,im就是你要的舉證
2樓:匿名使用者
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中如何取出矩陣中的某一個值
3樓:藤閣美人
1、開啟matlab,在命令列視窗中輸入 a=[1 2 3;4 5 6],按回車鍵,建立一個2行3列的a矩陣內
2、如果我們想獲取矩陣第
容2行第1列的值,輸入a(2,1)
3、如果想獲取矩陣第2行第3列的值,輸入a(2,3)4、如果想間隔的獲取矩陣多個值,可以使用 a(2,[1 3])方式,這是獲取矩陣第2行第1列,第3列的值
5、如果我們想獲取第2行的資料,可以使用a(2,:)
4樓:天雲一號
在matlab中,取出bai矩陣中某一個值的方du法如下:
1、對於二維陣列zhi:dao
a(i, j) % 表示取出專二維陣列a的第
屬 i 行,第 j 列的資料
a(:, j) % 表示取出二維陣列a的第 j 列的所有資料
a(i, :) % 表示取出二維陣列a的第 i 行的所有資料
2、多維陣列的方法與二維陣列類似(以三維陣列為例):
b(i, j, k) % 表示取出三維陣列a的第k個二維陣列的第 i 行,第 j 列的資料
b(:, j, k) % 表示取出三維陣列a的第k個二維陣列的第 j 列的所有資料
b(i, :, k) % 表示取出三維陣列a的第k個二維陣列的第 i 行的所有資料
b(i, j, :) % 表示取出三維陣列a的每個二維陣列的第 i 行,第 j 列的資料
5樓:匿名使用者
objv(1,1)才是第一個數
或objv(1,:)
用matlab讀取彩色**,並提取rgb值按畫素順序放到一個三維矩陣裡,該怎麼寫程式?
6樓:匿名使用者
帶程式的那個回答程式是錯誤的,為了提取影象i的r分量,其相應程式為i_r=i(:,:,1)而非答案中所寫的g_r(i,j)=i(i,j,1); %%提取r分量
7樓:匿名使用者
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);
8樓:匿名使用者
不知道你為什麼要bai生成第一du、
二、三列分別表zhi
示每個dao畫素的r、g、b值的矩陣回,其實matlab自動答把三個通道分開是有道理的,處理會很方便,如果你一定要生產你想要的矩陣,可嘗試以下幾種方法:
1.以進位制的格式讀**,然後去掉影象的資訊頭(注意每個格式的標頭檔案包含的位元組數都不一樣的,以真彩色bmp為例,其標頭檔案有54個位元組,去掉著54個位元組後就是影象的rgb資訊了)
2.第二種會稍微方便些,用imread讀圖生成一個三維矩陣,然後你新建一個你想要的二維矩陣,把前面得到的rgb資訊填充進去
9樓:匿名使用者
a = imread('bird_small.png');
img_size = size(a);
x = reshape(a, img_size(1) * img_size(2), 3);
怎樣用matlab把一副彩色影象的變成資料矩陣
10樓:追逐天涯的風
提取的話簡單的很,比如說你讀入一副影象: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中多幅圖合成為一幅圖
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...
matlab如何計算一幅影象中某一灰度值的畫素個數
小丁創業 方法和詳細的操作步驟如下 1 第一步,開啟需要處理的影象,然後編寫以下 見下圖紅框標註處,轉到下面的步驟。2 第二步,執行完上面的操作之後,可以看到影象均衡的 見下圖,轉到下面的步驟。3 第三步,執行完上面的操作之後,畫出平衡 的直方圖,在平衡前後對 進行比較,見下圖。這樣,就解決了這個問...
怎樣畫一幅簡單又好看的畫,怎樣畫好一幅簡單又漂亮的素描畫
雲南新華電腦學校 教你怎麼畫出一隻可愛的小狗如下幾個步驟 大部分人都喜歡可愛的小狗狗,但是很多人卻畫不出一隻可愛的小狗。按照下面的方法來畫出一隻可愛的小狗,你一定會給自己點贊!成品展示 一 工具 原料 a4紙水筆 二 方法 步驟 1.第一步是為整個圖畫勾勒線條。先畫出一個大圓,然後再大圓的下面畫一個...