我正在使用java进行数字图像处理,最近我在java中实现了一篇论文,本文的一部分是这样的:
我从中理解的是,G(i,j)是在应用 soble operator 之后位置(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 。我正在使用灰度级图像,因此我只考虑一架飞机(RED)。这里 SIGMA_G [5] 包含作者建议的sigmaG值。
答案 0 :(得分:2)
您的实施是正确的。通过渐变,我认为作者实际上意味着图像的渐变幅度。使用sobel算子进行卷积是计算图像梯度的一种方法。
和
(Gx,Gy),矢量图像是图像的梯度。
此G是图像的渐变幅度,是您从this.getSobelImage()
获得的,这是您想要的。
答案 1 :(得分:0)
此处梯度表示由Sobel运算符获得的结果。表示Sobel运算符在给定图像上进行处理的最终结果。
因此,在浮点图像上应用Sobel函数之后。生成的图像将是渐变图像。