Re: [問題] 怎麼對彩色影像的RGB值做正規化?已回收

看板MATLAB作者 (小太保)時間15年前 (2009/04/22 23:31), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/2 (看更多)
※ 引述《thanksgive (乾溫)》之銘言: : 以下是我的程式碼,可是跑得有點久, : 請問有比較快速,或是不會用到迴圈的寫法嗎? : for i=1:size(x,1) : for j=1:size(x,2) : x(i,j,:)=mat2gray(x(i,j,:)); : end : end : x裡面的i,j都要重複以下步驟 : 比方說原來 : x(i,j,1)=1; : x(i,j,2)=2; : x(i,j,3)=3; : 變成 : x(i,j,1)=0; : x(i,j,2)=0.5; : x(i,j,3)=1; : 就是把最小的變成0,最大變成1,中間的就內插 如果是我的話... [a b c] = size(x); y = zeros(a,b,c); for i=1:a for j=1:b m1 = min(x(i,j,:)); m2 = max(x(i,j,:)); y(i,j,:) = (x(i,j,:)-m1)./(m2-m1); end end x = y; 又如果 m1 與 m2 是固定的(例如 m1=1, m2=255), 或其中一個是固定的,就可以省去讀取 m1,m2 或是 m1 或 m2 的步驟,例如.. [a b c] = size(x); y = zeros(a,b,c); for i=1:a for j=1:b y(i,j,:) = (x(i,j,:)-1)./254; end end x = y; 這樣應該會快一些。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 118.170.103.243
文章代碼(AID): #19xpWzPw (MATLAB)
文章代碼(AID): #19xpWzPw (MATLAB)