私は Java を使用してデジタル画像処理に取り組んでいます。最近、Java で論文を実装しています。この論文の一部は次のとおりです。
私がそれから理解したことは、G(i,j) は、soble 演算子を適用した後の位置 (i, j) での画像の強度になるということです。
次のコードを使用して wG を計算しました。
public void weightedGCalc() {
BufferedImage sobelIm = this.getSobelImage();
int width = sobelIm.getWidth();
int height = sobelIm.getHeight();
weightedG = new double[width][height];
for (int row = 0; row < width; row++) {
for (int col = 0; col < height; col++) {
int imgPix = new Color(sobelIm.getRGB(row, col)).getRed();
float val = -(float) (Math.pow(imgPix, 2) / (2 * Math.pow(SIGMA_G[5], 2)));
weightedG[row][col] = (float) Math.exp(val);
}
}
}
ここでthis.getSobelImage(); 指定された画像のsobel Imageが表示されます。私はグレーレベルの画像を扱っているため、1 つの平面 (RED) のみを検討しています。ここでSIGMA_G[5]には、 Authorによって提案された sigmaG の値が含まれています。