0

次のカーネルを使用して、画像に畳み込みフィルターを適用するサンプル画像処理コードがあります。

float kernel[] = {-1,0,1};

およびフィルターの適用:

new ConvolveOp(new Kernel(1,3, kernel), ConvolveOp.EDGE_NO_OP, null).filter(copy, img);

正方でないカーネル行列を扱う場合、ConvolveOp はどのように動作するのだろうか? 私が知る限り、畳み込みアルゴリズムでは行数が奇数の正方行列を使用する必要があります。

PS。私はそれ(Java)がゼロで埋められるかもしれないと思っていました(例:{0,0,0,-1,0,1,0,0,0})が、より洗練されたケースでは、この形式のカーネルを持つこともできます実行時エラーなし:

    float data[] = {
        -1,0,1,
        -1,0,1,
        -1,0,1,
        -1,0,1
    };

奇数行の正方形になるようにパディングすることはできません。

ありがとう

4

1 に答える 1

1

畳み込みカーネルが正方行列でなければならないということは何もありません。

于 2012-05-26T11:54:41.257 に答える