0

我正在使用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 的

4

2 回答 2

2

你的实现是正确的。通过梯度,我认为作者实际上是指图像的梯度幅度。与 sobel 算子的卷积是计算图像梯度的一种方法。

在此处输入图像描述

在此处输入图像描述

(Gx,Gy),向量的图像是图像的梯度。

在此处输入图像描述

这个 G 是图像的梯度幅度,是你从中得到的this.getSobelImage(),这就是你想要的。

于 2013-09-15T07:10:26.810 回答
0

这里的梯度是指 Sobel 算子得到的结果。表示 Sobel 算子在给定图像上处理的最终结果。

所以在对浮点图像应用 Sobel 函数之后。结果图像将是渐变图像。

于 2020-06-28T10:12:57.177 回答