2

ベイヤー デモザイクを実装しましたが、これまでのところ動作しますが、かなり遅いです。私はmatlabの初心者であり、forループは通常、物事を行うのに悪い方法であるとすでに考えていました。

それは疑似コードの私のアルゴリズムです。誰かがそれをもう少しマット化する方法のヒントを教えてくれますか?

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ループを取り除く方法はありますか?

4

2 に答える 2

3

Matlabには、Bayerのデモザイキングを行う組み込み関数があります。

 RGB = demosaic(I, sensorAlignment);
于 2012-04-25T13:47:50.323 に答える
1

Matlabの論理インデックスを使用して、やりたいことができる場合があります。たとえば、あなたは書くかもしれません

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

これは、関数が数値や。isbluevalue()ではなく、picの要素で機能する場合にのみ機能することに注意してください。ij

これで問題が解決しない場合は、ニーズをもう少し詳しく説明してください。

于 2012-04-25T12:45:46.533 に答える