Re: [問題] 怎麼對彩色影像的RGB值做正規化?已回收
※ 引述《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
討論串 (同標題文章)
完整討論串 (本文為第 1 之 2 篇):