我正在使用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图像。我正在处理灰度图像,因此我只考虑一个平面(RED)。这里SIGMA_G[5]包含 Author 建议的 sigmaG 的值。