ブロックに分割し、各ブロックのヒストグラムを計算する必要がある画像があります。これを行う最善の方法は、blockproc() 関数を使用して各ブロックのヒストグラムを計算することだと思いますが、ヒストグラムはベクトルであり、さらに計算を高速化するために 3 次元に格納したいと考えています。
たとえば、1024*1024px の画像を 64*64px のブロックに分割し、hist() でヒストグラムを計算します。したがって、blockproc は 16*16 行列を返す必要があります。しかし、hist() が格納したいベクトルを返すことを考えると、blockproc() が 16*16*256 行列を返すようにしたいと思います。3 番目の次元はヒストグラムの 256 値です。
私の現在のコードは次のとおりです。
function [ counts ] = getHist( block )
[counts,]=hist(block.data, 0:255);
end
HistA = blockproc(lbpA, [64 64], @(block_struct) getHist(block_struct));
ただし、(16*256) x 1024 の行列が返されます。
どうすればこれを達成できますか?
ありがとう!