2

〜400枚の画像のセット内の各画像の各ピクセルに関数を適用する必要があります。私が書いた ( と呼ばれるcustomf) 関数には、行列と、行列内のセルの位置 ( と ) の 3 つの引数が必要mですn。ピクセルの位置は、周囲のピクセルの値を必要とする LBP (ローカル バイナリ パターン) を計算するために必要です。 customf(matrix, m, n)は整数を返すdので、の各値を画像と同じサイズの行列に0 < d < 256格納したいと思います。d

セットが非常に大きいため、コードをできるだけ効率的にしたいのですが、使用方法cellfunarrayfunそのような方法がわかりません。

それともより良い解決策ですか?(ネストされた使用forは非効率的でしょうか?)

ありがとう!

4

1 に答える 1

1

customf違う書き方できませんか?各ピクセル ( 、 ) の画像全体を処理する代わりに、パッチの中心ピクセルの LBP を計算するために必要なローカル パッチのみを与えてみませんか?mn

たとえば、からcustomfピクセル -/+ を見て、での応答を計算する必要がある場合、kmndmn

k = 5;
localF = @( patch ) customf( patch, k+1, k+1 ); % assuming patch is of size (2k+1)x(2k+1)
% apply LBP to an image
D = nlfilter( image, [2*k+1 2*k+1], localF );

と同じサイズで取得するためにnlfilterゼロパディングを行うことに注意してください。imageDimage

于 2013-02-19T09:27:50.077 に答える