2012-04-25 73 views
2

我實施了bayer去馬賽克並且迄今爲止工作,但它很慢。我是matlab的新手,已經認爲for循環通常是一種不好的做事方式。Matlab:避免用於拜爾模式去馬賽克的for-loops

這是我在僞代碼算法,任何人都可以給我一個提示如何matlabize它多一點?

pic = zero(width, height, 3) 
for i=1:Width 
    for j=1:Height 
     if isbluevalue(i, j) 
      pic(i,j) = getOtherTwoValues(...) 
     if isredvalue(i,j) 
      //do accordingly 
     if isgreenvalue(i,j) 
      //do accordingly 
end 
end 

有沒有辦法擺脫for循環?

回答

1

你可以用Matlab的邏輯索引做你想做的。例如,你可以寫

pic(isbluevalue(pic)) = getOtherTwoValues(...) 

請注意,這只是工作,如果你的函數isbluevalue()作品在PIC的元素,而不是數字ij

如果這沒有幫助,請更充分地說明您的需求。

3

在Matlab中有一個內置函數用於拜耳去馬賽克。

RGB = demosaic(I, sensorAlignment);