作者LPD666 ()
看板MATLAB
標題[請益] 如何用for迴圈搭配mean取出影像值
時間Wed May 31 23:47:05 2017
如題,假設我目前有五張影像分別為a1,a2,a3,a4,a5
我想利用mean找出影像中大於0的各點數值之平均例如
a1_mean = mean(a1(find(a1>0)));
a2_mean = mean(a2(find(a2>0)));
.
.
.
a5_mean = mean(a5(find(a5>0)));
不想一張一張做
嘗試了幾種for迴圈的寫法但是都不對,想請問該如何解決
謝謝各位!
-------------------------------------------------------------
目前改成這樣
for j = 1:5
k=num2str(j);
AA=cat(3,['a',num2str(k)]);
a5_mean=mean(AA(find(AA>0)));
end
數值有跑出來了,但是對照a5執行後的數值跟我原先用手動輸入的不同@@
不知道是哪裡的問題
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.125.96.131
※ 文章網址: https://webptt.com/m.aspx?n=bbs/MATLAB/M.1496245628.A.9C7.html
1F:推 sppmg: 你把a1改成陣列a(I)就好啦 06/01 09:51
2F:→ YoursEver: eval ? 06/01 12:55
3F:→ LPD666: 有試過寫成mean(eval(['a',num2str(j),''] 06/01 13:21
4F:→ LPD666: (find(eval(['a',num2str(j),'']>0))); 但還是不對@@ 06/01 13:23
5F:→ YoursEver: 灰階影像是二維矩陣,因此你最少要寫成 mean(mean(Img)) 06/01 14:46
6F:→ YoursEver: 或是一樓所說的格式. 06/01 14:46
7F:→ YoursEver: mean( Img(:) ) 06/01 14:46
8F:→ LiamIssac: a = (a1, a2,...,an) 然後work on a 06/01 18:12
※ 編輯: LPD666 (140.125.96.131), 06/01/2017 20:34:44
9F:→ LiamIssac: 為什麼k要num2str兩次? 06/01 21:14
10F:推 sunev: for i=1:4 06/03 01:24
11F:→ sunev: eval(['b=a' num2str(i) ';']) 06/03 01:24
12F:→ sunev: AA(i)=mean(b(b>0)); 06/03 01:24
13F:→ sunev: end 06/03 01:24