かなり前から頭を壁にぶつけています。私conv2
は、畳み込みを単独で行うMatlabの関数を使用することに慣れています。
ただし、Javaで適切に実装できません。コードスニペットを提供しますが、すべてめちゃくちゃです。私はそれを明確にして投稿しようとします(実際にはここで午前4時30分ですが、私はまだこれに苦労しています..)。
Java で同じサイズの 2 つの 2 次元配列間で 2 次元畳み込みを行う作業コード メソッドを投稿できますか?
よろしくお願いします!
かなり前から頭を壁にぶつけています。私conv2
は、畳み込みを単独で行うMatlabの関数を使用することに慣れています。
ただし、Javaで適切に実装できません。コードスニペットを提供しますが、すべてめちゃくちゃです。私はそれを明確にして投稿しようとします(実際にはここで午前4時30分ですが、私はまだこれに苦労しています..)。
Java で同じサイズの 2 つの 2 次元配列間で 2 次元畳み込みを行う作業コード メソッドを投稿できますか?
よろしくお願いします!
少しのグーグルは決して痛いことはありません。 このコードはあなたを助けるかもしれません。特に、
public static double[][] convolution2D(double[][] input,
int width, int height,
double[][] kernel,
int kernelWidth,
int kernelHeight) {
int smallWidth = width - kernelWidth + 1;
int smallHeight = height - kernelHeight + 1;
double[][] output = new double[smallWidth][smallHeight];
for (int i = 0; i < smallWidth; ++i) {
for (int j = 0; j < smallHeight; ++j) {
output[i][j] = 0;
}
}
for (int i = 0; i < smallWidth; ++i) {
for (int j = 0; j < smallHeight; ++j) {
output[i][j] = singlePixelConvolution(input, i, j, kernel,
kernelWidth, kernelHeight);
}
}
return output;
}